赎金信
class Solution {
public boolean canConstruct(String ransomNote, String magazine) {
//和242 有效的字母异位词思想一致
char[] ran_chars = ransomNote.toCharArray();
char[] mag_chars = magazine.toCharArray();
boolean flag = true;
//借助数组实现字母hash结构
int[] words = new int[26];
//扫描mag_chars,统计每个单词出现的次数,加法
for(char c: mag_chars) {
words[c- 'a'] += 1;
}
//扫描ran_chars,相应位置上的单词次数,减法
for (char c: ran_chars) {
words[c - 'a'] -= 1;
}
//上述操作执行完后,如果words中有一个元素小于0,则跳出,表明不能构成
for (int word : words) {
if(word < 0) {
flag = false;
break;
}
}
return flag;
}
}