力扣映射思辨题:赎金信

思路很简单:查到就改

复制代码
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;
}

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

相关推荐
Swift社区1 小时前
LeetCode 394. 字符串解码(Decode String)
算法·leetcode·职场和发展
tt5555555555552 小时前
LeetCode进阶算法题解详解
算法·leetcode·职场和发展
让我们一起加油好吗2 小时前
【基础算法】DFS中的剪枝与优化
算法·深度优先·剪枝
Q741_1472 小时前
C++ 模拟题 力扣495. 提莫攻击 题解 每日一题
c++·算法·leetcode·模拟
我命由我123453 小时前
Excel - Excel 列出一列中所有不重复数据
经验分享·学习·职场和发展·word·powerpoint·excel·职场发展
Felven3 小时前
A. Be Positive
算法
小O的算法实验室3 小时前
2026年COR SCI2区,自适应K-means和强化学习RL算法+有效疫苗分配问题,深度解析+性能实测,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
青岛少儿编程-王老师4 小时前
CCF编程能力等级认证GESP—C++7级—20250927
数据结构·c++·算法
夏鹏今天学习了吗4 小时前
【LeetCode热题100(39/100)】对称二叉树
算法·leetcode·职场和发展
天选之女wow5 小时前
【代码随想录算法训练营——Day34】动态规划——416.分割等和子集
算法·leetcode·动态规划