You need to enable JavaScript to run this app. C++实现等长字符串同位置匹配字符数统计 修正位置校验缺陷
优惠活动
大模型
产品
解决方案
定价
更多

C++实现等长字符串同位置匹配字符数统计 修正位置校验缺陷

现有代码的核心逻辑缺陷

原有实现通过对两个字符串排序、计算集合交集来统计匹配数,这套逻辑完全丢失了字符的位置信息,本质是在统计两个字符串中所有共现的字符总数量,不校验字符是否处于相同索引位置,因此会把错位出现的相同字符也计入统计,和“逐位同位置匹配计数”的需求完全不符。

正确实现思路

结合题目给出的前置约束(两个字符串长度相等、大小写规则一致),不需要复杂的集合运算,直接逐位遍历对比即可:

  • 初始化计数器存储同位置匹配的字符总数
  • 从字符串首字符(索引0)开始,依次对比每一个相同索引位置下的两个字符是否相等
  • 遇到相等的字符就将计数器加1,遍历结束后将计数值转为字符串返回即可
修正后的完整代码
string matchingletters(string word, string ptw) {
    int matchCount = 0;
    // 题目前置保证两字符串长度相等,无需额外做长度边界校验
    for (size_t i = 0; i < word.length(); i++) {
        if (word[i] == ptw[i]) {
            matchCount++;
        }
    }
    string result = to_string(matchCount);
    cout << result << endl;
    return result;
}
效果验证
  • 测试用例1:word为windows、ptw为winowes
    逐位对比后同位置匹配的字符为w、i、n、s,最终输出4,和预期结果一致。
  • 原错误场景测试:word为kanton、ptw为balkon
    逐位对比后同位置匹配的字符为索引1的a、索引4的o、索引5的n,最终输出3,错位出现的k不会被计入统计,完全符合规则要求。

内容的提问来源于stack exchange,提问作者ozan esici

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.12 23:45:10