力扣映射思辨题:赎金信

思路很简单:查到就改

复制代码
bool canConstruct(char* ransomNote, char* magazine) {
   
    for(long x=0;x<strlen(ransomNote);x++)
    {
        for(long y=0;y<strlen(magazine);y++)
        {
            if(magazine[y]==ransomNote[x])
            {
            ransomNote[x]='1';
            magazine[y]='1';
                break;
            }
        }
    }
    for(long x=0;x<strlen(ransomNote);x++)
    {
        if(ransomNote[x]!='1')
        {
            return false;
        }
    }
    return true;
}

这是笔者的代码,因为magazine数据过大毙了,整体思路为如果相同则将目标字符串对应位置标为1,再将样本字符串对应位置标为1并break,防止其再次进行判断

所以这是通过大佬的代码

复制代码
bool canConstruct(char * ransomNote, char * magazine){
    int l_r = strlen(ransomNote);
    int l_m = strlen(magazine);
    if(l_r > l_m) return false;
    int count = 0;
    for(int i = 0; i < l_r; i++){
        for(int j = 0; j < l_m; j++){
            if(ransomNote[i] == magazine[j]){
                count++;
                magazine[j] = ' ';//如果在杂志上找到了对应的字母,则将杂志上的字母改掉
                break;
            }
        }
    }
    if(count == l_r) return true;
    else return false;
}

同样是遍历,大佬只是计算匹配次数并与目标字符串长度进行比较,对样本字符串的处理和我相同,但是减少了一次遍历,大大缩短了时间

相关推荐
AlgoNewbie几秒前
牛客周赛 Round 88【题解完成】
算法
luckycoding38 分钟前
2747. 统计没有收到请求的服务器数目
算法
TT哇2 小时前
【前缀和】矩阵区域和(medium)
java·线性代数·算法·矩阵
lzb7592 小时前
第16届蓝桥杯单片机模拟试题Ⅲ
职场和发展·蓝桥杯
Elendill3 小时前
【算法笔记】并查集详解
笔记·python·算法
BanyeBirth3 小时前
C++高精度算法(加、减、乘)
开发语言·c++·算法
houliabc3 小时前
C语言个人笔记
c语言·数据结构·笔记·算法
Allen Wurlitzer4 小时前
算法刷题记录——LeetCode篇(1.9) [第81~90题](持续更新)
算法·leetcode·职场和发展
@MrLiu4 小时前
# 深度学习中的优化算法详解
人工智能·深度学习·算法·优化器
阳洞洞4 小时前
leetcode 377. Combination Sum IV
算法·leetcode·动态规划·完全背包问题