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
相关推荐
圣保罗的大教堂2 小时前
leetcode 3517. 最小回文排列 I 中等
leetcode
caishenzhibiao3 小时前
期货先行者主图 同花顺期货通指标
java·c语言·c#
alphaTao4 小时前
LeetCode 每日一题 2026/7/27-2026/8/2
python·算法·leetcode
NoteStream6 小时前
【c语言基础】C语言常见概念
c语言·开发语言·编辑器
caishenzhibiao7 小时前
先行者副图 同花顺期货通指标
java·c语言·c#
回眸不遇7 小时前
将 Docker虚拟磁盘文件ext.vhdx迁移出C盘 ,更换到D盘
c语言·docker·容器
冻柠檬飞冰走茶7 小时前
PTA基础编程题目集 7-27 冒泡法排序(C语言实现)
c语言·开发语言·数据结构·算法
wuyk5557 小时前
77.嵌入式 C 语言中 enum 枚举的工程化实践:告别魔法数字,提升代码可维护性
c语言·开发语言·stm32·单片机·嵌入式硬件
lightqjx8 小时前
【Linux系统】基础 IO
linux·c语言·重定向·缓冲区·文件io·文件的系统调用
亿道电子Emdoor9 小时前
【Arm】MSP和PSP的区别简介
c语言·arm开发·单片机·mcu