关闭

leetcode_383 Ransom Note

标签: leetcode383C++magazinesransomNoet
362人阅读 评论(0) 收藏 举报
分类:
  • 题目分析

    给定两个字符串magazines和ransomNote,判断是否可以从magazines中抽取字母(每个字母只能用一次)组成ransomNote。字符串均由小写字母组成。

  • 解题思路

    1)统计ransomNote中每个字符出现的次数;
    2)然后统计magazines中字符出现的次数;
    3)判断ransomNote中的字符是否全部包含在magazines中即可。

  • 实现程序

bool canConstruct(string ransomNote, string magazine)
{
    int size1 = magazine.length();
    int size2 = ransomNote.length();
    if (size1 < size2)
        return false;
    // 统计magazine中每个单词出现的次数
    vector<int> count(26, 0);
    for (int i = 0; i < size1; i++)
    {
        count[magazine[i] - 'a']++;
    }
    for (int i = 0; i < size2; i++)
    {
        count[ransomNote[i] - 'a']--;
    }
    for (int i = 0; i < 26; i++)
    {
        if (count[i] < 0)
            return false;
    }
    return true;
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:212791次
    • 积分:4670
    • 等级:
    • 排名:第6219名
    • 原创:258篇
    • 转载:0篇
    • 译文:6篇
    • 评论:32条
    最新评论
    Linux相关知识
    本专栏主要是关于Linux的一些基本知识等。