給定一個贖金信 (ransom) 字符串和一個雜志(magazine)字符串纪他,判斷第一個字符串ransom能不能由第二個字符串magazines里面的字符構(gòu)成关炼。如果可以構(gòu)成,返回 true ;否則返回 false铸抑。
(題目說明:為了不暴露贖金信字跡遏暴,要從雜志上搜索各個需要的字母侄刽,組成單詞來表達意思。)
注意:
你可以假設(shè)兩個字符串均只含有小寫字母朋凉。
canConstruct("a", "b") -> false
canConstruct("aa", "ab") -> false
canConstruct("aa", "aab") -> true
代碼
class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
unordered_map<char, int> m;
for (char c : magazine) ++m[c];
for (char c : ransomNote) {
if (--m[c] < 0) return false;
}
return true;
}
};