(小练习)赎金信---Java

要求:
1、给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magazines 里面的字符构成。
2、如果可以构成,返回 true ;否则返回 false。
3、题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。杂志字符串中的每个字符只能在赎金信字符串中使用一次。
实现:

public class CanConstruct {
    
    public  boolean canConstruct(String str1,String str2){
        //字符串转数组后,逐元素比较 str2中是否含str1
        StringBuilder stringBuilder = new StringBuilder(str2);
        int index;
        for (char c : str1.toCharArray()) {
            index = stringBuilder.indexOf(String.valueOf(c));
            if (index >= 0) {
                stringBuilder.deleteCharAt(index);
            } else {
                return false;
            }
        }
        return true;
    }

    public static void main(String[] args) {

        CanConstruct C=new CanConstruct();
        System.out.println(C.canConstruct("ransom", "magazine"));

    }
}

执行结果:
(小练习)赎金信---Java_第1张图片

你可能感兴趣的:(java,代码练习,java,leetcode)