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
相关推荐
dtq04248 小时前
C语言刷题函数2 - 用函数实现数组操作
c语言·开发语言
芯岭技术郦9 小时前
MS32C001‑C:极致成本 32 位 MCU
c语言·开发语言·单片机
玖玥拾18 小时前
C/C++ 基础笔记(十四)多态与模板编程
c语言·c++·多态·模板
想吃火锅100518 小时前
【leetcode】14.最长公共前缀js
算法·leetcode·职场和发展
小林ixn19 小时前
LeetCode 206. 反转链表(迭代 + 递归详解)
算法·leetcode·链表
菜鸟‍21 小时前
LeetCode 1 27 和 704 || 两数之和 移除元素 二分查找
算法·leetcode·职场和发展
caimouse1 天前
Reactos 第1章 概述
c语言·开发语言·架构
退休倒计时1 天前
【每日一题】LeetCode 142. 环形链表 II TypeScript
算法·leetcode·链表·typescript
啊森要自信1 天前
【GUI自动化测试】控件、鼠标键盘操作与多场景自动化
c语言·开发语言·python·adb·ipython
lpl3129055091 天前
skynet 共享数据原理
服务器·c语言·lua