感觉题目说的不明白,一开始我理解的是整个字符串要完整的出现在Magazine里才行,后来发现只要RansomNote里的字母出现次数少于Magazine里的就好了。所以借鉴前两个题的解法用了hash表的结构。
class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
vector<int> hash(200, 0);
int i = 0;
for (i; i < magazine.length(); i++)
hash[magazine[i]]++;
for (i = 0; i < ransomNote.length(); i++)
{
hash[ransomNote[i]]--;
if (hash[ransomNote[i]] < 0) return false;
}
return true;
}
};
和最优解法差不多。