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

字符串字符替换问题:重复字符转')'单次转'(',代码故障求助

问题解决:字符重复替换为括号

原代码的问题

你的代码存在几个关键错误,导致无法实现需求:

  • 语法错误:string str是无效的Python语句,正确的变量赋值应该是类似string = s(注意不要用str做变量名,它是Python内置类型)。
  • 逻辑缺失:完全没有统计每个字符的出现次数,只是生成了和原字符串长度相同的全(字符串,根本没处理重复字符的判断逻辑。
  • 拼写错误:count letter应该是count_letter(下划线连接)。

正确实现代码

要实现需求,核心是先统计每个字符的出现次数,再根据次数替换字符:

def change_str(s):
    # 统计每个字符的出现次数
    char_count = {}
    for char in s:
        char_count[char] = char_count.get(char, 0) + 1
    
    # 遍历生成结果字符串
    result = []
    for char in s:
        result.append('(' if char_count[char] == 1 else ')')
    
    return ''.join(result)

# 测试示例
print(change_str("din"))          # 输出: (((
print(change_str("recede"))       # 输出: ()()()
print(change_str("received"))     # 输出: ()()((()

代码说明

  1. 统计字符次数:用字典char_count遍历原字符串,记录每个字符出现的次数。char_count.get(char, 0)表示如果字符不在字典里,就返回0,再加1实现计数。
  2. 生成结果:再次遍历原字符串,对每个字符查字典里的次数,出现1次就加(,否则加)。用列表收集结果再join,比直接字符串拼接效率更高。
  3. 返回结果:最后把列表转为字符串返回,方便后续使用或打印。

内容的提问来源于stack exchange,提问作者Ariky Hito

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 15:47:04