leetcode力扣刷题打卡
题目:383. 赎金信
描述:给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。
如果可以,返回 true ;否则返回 false 。
magazine 中的每个字符只能在 ransomNote 中使用一次。
解题思路
1、哈希存储ansomNote每个字符出现的次数;
2、遍历三次即可;
原代码##
class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
vector<int> v(26,0);
for (int i = 0; i < ransomNote.size(); ++i) {
v[ransomNote[i] - 'a']++;
}
for (int j = 0; j < magazine.size(); ++j) {
if (!(v[magazine[j] - 'a'])) continue;
else v[magazine[j] - 'a']--;
}
for (int i = 0; i < 26; ++i) {
if (v[i] > 0) return false;
}
return true;
}
};