You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift统计字符串重复字符及次数代码运行异常求解

代码问题诊断
  • 核心错误1:遍历过程中遇到第一个已存在的字符就直接执行return中断函数,完全没有完成全量字符的统计,你测试输入geeksforgeeks第二个字符是e,第二次遇到e的时候就直接返回["e":1],和你得到的运行结果完全吻合
  • 核心错误2:计数逻辑错误,只有字符不存在于字典时才会执行赋值操作,字符重复出现时没有做计数累加
修正后的实现代码
func letters(inputs: String)->[Character:Int] {
    var result = [Character:Int]()
    for input in inputs {
        // 重复字符直接累加计数,不存在的字符默认从0开始+1
        result[input, default: 0] += 1
    }
    // 如果只需要返回出现次数≥2的重复字符,放开下面这行过滤即可
    // return result.filter { $0.value >= 2 }
    return result
}
print(letters(inputs:"geeksforgeeks"))
适配Python使用习惯的说明
  • Swift字典的[key, default: defaultValue]写法和Python字典的get(key, defaultValue)逻辑完全一致,你有Python开发基础可以直接类比理解
  • 代码里的filter过滤逻辑和Python的filter函数用法逻辑类似,开启后会仅保留出现次数≥2的重复字符
运行结果说明

调用letters(inputs:"geeksforgeeks")会得到完整的字符计数结果:["g":2, "e":4, "k":2, "s":2, "f":1, "o":1, "r":1],开启过滤逻辑后会返回符合要求的重复字符统计结果:["g":2, "e":4, "k":2, "s":2]

内容的提问来源于stack exchange,提问作者Tom Hiddleston

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:06:10