【leetcode】383. 赎金信(easy)
给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。
如果可以,返回 true ;否则返回 false 。
magazine 中的每个字符只能在 ransomNote 中使用一次。
class Solution {public boolean canConstruct(String ransomNote, String magazine) {HashMap<Character,Integer> hm = new HashMap<>();for(int i=0;i<magazine.length();i++){char a = magazine.charAt(i);if(hm.containsKey(a))hm.put(a, hm.get(a)+1);elsehm.put(a,0);}for(int i=0; i<ransomNote.length(); i++){char b = ransomNote.charAt(i);// hm不包含b, 返回falseif(!hm.containsKey(b))return false;// hm包含b, 若可使用次数不足, 返回falseif(hm.get(b)<0)return false;// hm包含b且可使用,更新可使用次数hm.put(b, hm.get(b)-1);}return true;}
}