哈希:赎金信
本题判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成,但是这里需要注意两点。
第一点“为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思” 这里说明杂志里面的字母不可重复使用。
第二点 “你可以假设两个字符串均只含有小写字母。” 说明只有小写字母,这一点很重要
class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
unordered_map <char, int> map;
for(auto &ch : magazine)
{
map[ch]++;
}
for(auto &ch : ransomNote)
{
auto it = map.find(ch);
if(it != map.end() && it->second > 0)
{
it->second--;
}
else
return false;
}
return true;
}
};