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
相关推荐
程序员Jared28 分钟前
深入浅出C语言——程序环境和预处理
c语言
圣保罗的大教堂34 分钟前
leetcode 3531. 统计被覆盖的建筑 中等
leetcode
应茶茶42 分钟前
从 C 到 C++:详解不定参数的两种实现方式(va_args 与参数包)
c语言·开发语言·c++
福尔摩斯张1 小时前
Linux信号捕捉特性详解:从基础到高级实践(超详细)
linux·运维·服务器·c语言·前端·驱动开发·microsoft
【蜡笔小新】2 小时前
《筑基篇》C语言基础2
c语言·开发语言
学习路上_write3 小时前
AD5293驱动学习
c语言·单片机·嵌入式硬件·学习
Herbert_hwt4 小时前
C语言一维数组完全指南:从基础到实战应用
c语言
你想知道什么?4 小时前
JNI简单学习(java调用C/C++)
java·c语言·学习
吃西瓜的年年4 小时前
3. C语言核心语法2
c语言·嵌入式硬件·改行学it
福尔摩斯张5 小时前
基于C++的UDP网络通信系统设计与实现
linux·c语言·开发语言·网络·c++·tcp/ip·udp