解题思路:
读罢题目,本质就是看赎金信的字符是不是杂志中的字符的子集,是则返回true,否则返回false,统计的话用26位的数组实现即可,代码如下:
class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
if(magazine.size() < ransomNote.size()) {
return false;
}
int count[26] = {0};
for(auto& m : magazine) {
count[m - 'a'] ++;
}
for(auto& r : ransomNote) {
if(-- count[r - 'a'] < 0) {
return false;
}
}
return true;
}
};