给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。
如果可以,返回 true ;否则返回 false 。文章来源:https://www.toymoban.com/news/detail-639454.html
magazine 中的每个字符只能在 ransomNote 中使用一次。文章来源地址https://www.toymoban.com/news/detail-639454.html
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);
else
hm.put(a,0);
}
for(int i=0; i<ransomNote.length(); i++){
char b = ransomNote.charAt(i);
// hm不包含b, 返回false
if(!hm.containsKey(b))
return false;
// hm包含b, 若可使用次数不足, 返回false
if(hm.get(b)<0)
return false;
// hm包含b且可使用,更新可使用次数
hm.put(b, hm.get(b)-1);
}
return true;
}
}
到了这里,关于【leetcode】383. 赎金信(easy)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!