当前位置:   article > 正文

leetcode 383.赎金信

leetcode 383.赎金信
leetcode 383.赎金信
题目

给你两个字符串: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

提示:

1 <= ransomNote.length, magazine.length <= 105
ransomNote 和 magazine 由小写英文字母组成

知识点:

如果是字符0-9减’0’,就是得到数字;如果是小写字母,-‘a’ 变成这个字母在字母表中的下标

代码
class Solution {
public:
    bool canConstruct(string ransomNote, string magazine) {
    if(ransomNote.size()>magazine.size())
    return false;
    vector<int> cnt(26);
    for(char &c : magazine)
    {
        cnt[c-'a']++;
    }
    for(char &c :ransomNote)
    {
        cnt[c-'a']--;
        if(cnt[c-'a']<0)
        return false;
    }
    return true;
    }
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/232636
推荐阅读
相关标签
  

闽ICP备14008679号