class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
int r[26] = {0};
int m[26] = {0};
for (int i = 0; i < magazine.length(); i++) {
m[magazine[i] - 'a'] ++;
}
for (int i = 0; i < ransomNote.length(); i++) {
m[ransomNote[i] - 'a']--;
if (m[ransomNote[i] - 'a'] < 0)
return false;
}
return true;
}
};

总结
- 做过相似的一题
- 这种26个字母的题目都可以用数组表示map来解决
这篇博客讲解了一种简单的算法,如何利用数组m和r来判断给定的ransomNote字符串是否能从magazine中通过字符计数构建。通过遍历和更新字符计数,判断是否出现负数来确定可行性。
620

被折叠的 条评论
为什么被折叠?



