一开始没有看懂题目什么意思,原来是只要比较ransomNote和magazine中相对应字母的个数。
可以用map 也可以用数组。
public class Solution {
public boolean canConstruct(String ransomNote, String magazine) {if(ransomNote==""||ransomNote.isEmpty())
return true;
String[] Am=magazine.split("");
String[] Ar=ransomNote.split("");
Integer freq=0;
Map<String,Integer> Ma=new HashMap<>();
//Map<String,Integer> Ra=new HashMap<>();
for(String e:Am){
freq=Ma.get(e);
Ma.put(e, freq==null?1:freq+1);
}
for(String e:Ar){
freq=Ma.get(e);
Ma.put(e, freq==null?-1:freq-1);
}
for(String e:Ar){
if(Ma.get(e)<0)
return false;
}
return true;
}
}