LeetCode383_赎金信
LeetCode383_赎金信
- 标签:#哈希表 #字符串 #计数
- Ⅰ. 题目
- Ⅱ. 示例
- 0. 个人方法
标签:#哈希表 #字符串 #计数
Ⅰ. 题目
-
给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。
-
如果可以,返回 true ;否则返回 false 。
-
magazine 中的每个字符只能在 ransomNote 中使用一次。
Ⅱ. 示例
· 示例 1:
输入:ransomNote = “a”, magazine = “b”
输出:false
· 示例 2:
输入:ransomNote = “aa”, magazine = “ab”
输出:false
· 示例 3:
输入:ransomNote = “aa”, magazine = “aab”
输出:true
0. 个人方法
用一个哈希表维护字母出现的次数,先统计magazine中各字母出现的频次,再在ransomNote中逐渐削减频次,看够不够用。
class Solution {
public:bool canConstruct(string ransomNote, string magazine) {std::unordered_map<char, int> num;for (char letter : magazine){num[letter]++;}for (char use_letter : ransomNote){num[use_letter]--;if (num[use_letter] < 0){return false;}}return true;}
};