给你两个字符串:ransomNote
和 magazine
,判断 ransomNote
能不能由 magazine
里面的字符构成。
如果可以,返回 true
;否则返回 false
。
magazine
中的每个字符只能在 ransomNote
中使用一次。
示例 1:
输入:ransomNote = "a", magazine = "b" 输出:false
示例 2:
输入:ransomNote = "aa", magazine = "ab" 输出:false
示例 3:
输入:ransomNote = "aa", magazine = "aab" 输出:true
提示:
1 <= ransomNote.length, magazine.length <= 105
ransomNote
和magazine
由小写英文字母组成
-
class Solution { public: bool canConstruct(string ransomNote, string magazine) { if(ransomNote.size()>magazine.size()) return false; vector<int>char_count(26,0); for (char c : magazine) { char_count[c - 'a']++; } for(char c:ransomNote){ if(char_count[c-'a']==0) return false; char_count[c-'a']--; } return true; } };
找了个简单的题目写,之前没怎么写过哈希表类型的题目,练练手
这个题目重要的是审题!!!
给你两个字符串:ransomNote
和 magazine
,判断 ransomNote
能不能由 magazine
里面的字符构成。如果可以,返回 true
;否则返回 false
。
(1)要求magazine中字符种类>=ransomNote
(2)要求magazine中相同字符的数目>=ransomNode
(3)对顺序无要求(不是求子串)
这么看就简单很多
早点休息!