C语言 | Leetcode C语言题解之第383题赎金信

题目:

题解:

cpp 复制代码
bool canConstruct(char * ransomNote, char * magazine){
    int r = strlen(ransomNote);//首先是我们的目标数组和我们的提供方数组长度
    int m = strlen(magazine);
    if (r > m)
    return false;//如果提供的数量都不够补充目标,那肯定是不行的。故:false
    int ans[26] = {0};
    for (int i=0; i<r; i++)
    {
        ans[ransomNote[i] - 'a']++;
        ans[magazine[i] - 'a']--;
    }
//然后我们要看26个字母出现在目标数组中的字母对应的个数和同样的提供方数组的元素的个数,前者是正数或者是负数。
    if(r < m)
    {
        for(int i=r; i<m; i++)
    {
        ans[magazine[i] - 'a']--;
    }
    }
    for(int i=0; i<26; i++)
    {
        if(ans[i] > 0)
        return false;
    }
//如果最后得到的每一个值都是正数,那说明我们的提供方数组是没有剩余的。 false
    return true;
}//除了这两个条件之外,其他的全部都是对的。 true
相关推荐
小糯米60113 小时前
C语言文件操作
c语言·开发语言·数据结构
玖玥拾13 小时前
C/C++ 数据结构(四)链表与STL容器
c语言·数据结构·c++·链表·stl库
玖玥拾13 小时前
C/C++ 数据结构(一)基础概念、线性表链表
c语言·数据结构·c++·链表
QiLinkOS13 小时前
极客精神与商业思维的融合实践(3)
c语言·c++·人工智能·算法·开源协议
暖阳华笺14 小时前
【数据结构与算法】哈希专题
数据结构·c++·算法·leetcode·哈希算法
LuminousCPP14 小时前
数据结构 - 单链表第二篇:单链表进阶操作
c语言·数据结构·笔记·链表
玖玥拾14 小时前
C/C++ 数据结构(三)链表核心算法
c语言·数据结构·c++·链表
AKA__Zas14 小时前
芝士算法(滑动窗口片 2.0)
java·算法·leetcode·学习方法
四代水门14 小时前
LeetCode刷算法题(C++)
c++·算法·leetcode
玖玥拾1 天前
C/C++ 基础笔记(十三)继承
c语言·c++·继承