给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。
如果可以,返回 true ;否则返回 false 。
magazine 中的每个字符只能在 ransomNote 中使用一次。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/ransom-note
解答一:哈希表
class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
map<char, int> frenquency;
for(char ch : magazine){
++frenquency[ch];
}
for(char ch : ransomNote){
if(!frenquency[ch]) return false;
else --frenquency[ch];
}
return true;
}
};
解答二:一维数组
class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
vector<int> frenquency(26);
for(char ch : magazine){
++frenquency[ch - 'a'];
}
for(char ch : ransomNote){
if(frenquency[ch - 'a'] == 0) return false;
else --frenquency[ch - 'a'];
}
return true;
}
};