LeetCode赎金信杂志问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode赎金信杂志问题相关的知识,希望对你有一定的参考价值。
给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成。如果可以构成,返回 true ;否则返回 false。
(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。)
注意:
你可以假设两个字符串均只含有小写字母。
canConstruct("a", "b") -> false
canConstruct("aa", "ab") -> false
canConstruct("aa", "aab") -> true
分析:
利用HashMap这个集合,new的时候使用两个泛型,key为字符型(Character),value为整数型(Integer),通过存储magazine中的字母和出现的次数,和ransom中的字符进行比较,如果没有则直接返回false,否则减value值。
class Solution {
public boolean canConstruct(String ransomNote, String magazine) {
char[] c = ransomNote.toCharArray();
char[] c1 = magazine.toCharArray();
HashMap<Character,Integer> hm = new HashMap<>();
for(Character character : c1) {
if(!hm.containsKey(character)) {
hm.put(character, 1);
}else {
hm.put(character, hm.get(character)+1);
}
}
for(Character character : c) {
if(!(hm.containsKey(character))){
return false;
}else {
if((hm.get(character) -1) < 0) {
return false;
}
hm.put(character, hm.get(character)-1);
}
}
return true;
}
}
以上是关于LeetCode赎金信杂志问题的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode练习(Python):第383题:赎金信:给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magaz
Leetcode练习(Python):第383题:赎金信:给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串 ransom 能不能由第二个字符串 magaz