思路:记录magazine每个字符个数,然后记录ransomNote每个字符(每有一个减1),假如出现<0的情况说明ransomnode有字符的个数超过了magazine则无法构成,否则可以构成
代码:
class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
vector<int> map(26); //建立哈希表
for(char s : magazine) map[s - 'a']++; //先记录magazine的所有字符
for(char s : ransomNote) if(--map[s - 'a'] < 0) return false; //记录ransomnote的字符,每有一个减一,假如出现<0情况说明无法构成
return true; //否则可以构成
}
};