public boolean canConstruct(String ransomNote, String magazine) {
int[] hash = new int[26];
char[] rr = ransomNote.toCharArray();
char[] mm = magazine.toCharArray();
for(int i = 0; i <= mm.length -1 ;i++){
hash[mm[i] - 'a']++;
}
for(int i =0; i<=rr.length -1;i++){
hash[rr[i] - 'a']--;
}
for(int i = 0;i< 26;i++){
if(hash[i] < 0)
return false;
}
return true;
}
这题和 242题的答案的差距基本只有一个符号
先对magazine数组中的每个值变量,然后对应位置在hash数组中加1
然后对ransomNote数组遍历 ,然后对应位置在hash数组中减1
如果ransomNote中出现了magazine没有出现的值,那么hash数组中就会有负数
就这样