class Solution {
public boolean canConstruct(String ransomNote, String magazine) {
/* 这里就可以使用对应的哈希表来实现
*
* 提示: ransomNote 和 magazine 由小写英文字母组成 所以用数组实现哈希表的方式
*/
//一些先决的判断
int ranLen = ransomNote.length();
int magLen = magazine.length();
if(magLen < ranLen) return false;
int[] count = new int[26]; //定义数组大小
/*
* 一定要先统计magazine的 因为这里是频率的初始
* 然后ransomNote从里面找元素进行--
* 要是统计的顺序颠倒 会报错
*/
for(char i: magazine.toCharArray()){
count[i-'a']++;
}
for(char j: ransomNote.toCharArray()){
count[j-'a']--;
}
//判断对应的count里面的值是否有小于0的
for(int i:count){
if(i < 0){
return false; //说明此时的magazine中字母的出现次数不能满足ransomNote的要求
}
}
return true;
}
}