《LeetCode之每日一题》:227.赎金信
Posted 是七喜呀!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《LeetCode之每日一题》:227.赎金信相关的知识,希望对你有一定的参考价值。
题目链接: 赎金信
有关题目
为了不在赎金信中暴露字迹,从杂志上搜索各个需要的字母,组成单词来表达意思。
给你一个赎金信 (ransomNote) 字符串和一个杂志(magazine)字符串,
判断 ransomNote 能不能由 magazines 里面的字符构成。
如果可以构成,返回 true ;否则返回 false 。
magazine 中的每个字符只能在 ransomNote 中使用一次。
示例 1:
输入:ransomNote = "a", magazine = "b"
输出:false
示例 2:
输入:ransomNote = "aa", magazine = "ab"
输出:false
示例 3:
输入:ransomNote = "aa", magazine = "aab"
输出:true
提示:
1 <= ransomNote.length, magazine.length <= 10^5
ransomNote 和 magazine 由小写英文字母组成
题解
法一:字符统计
参考官方题解
class Solution
public:
bool canConstruct(string ransomNote, string magazine)
if (ransomNote.size() > magazine.size())
return false;
unordered_map<int, int> mp;//vector<int> cnt(26)
for (auto &c : magazine)
++mp[c - 'a'];//统计magazine中出现的字符的次数
for (auto &c : ransomNote)
--mp[c - 'a'];
if (mp[c - 'a'] < 0)
return false;
return true;
;
以上是关于《LeetCode之每日一题》:227.赎金信的主要内容,如果未能解决你的问题,请参考以下文章