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

如何查找字符串中最长的相邻重复值并为其添加括号

功能实现:为字符串最长相邻重复段添加括号标记

需求说明

输入连续字符串,将其中长度最长的相邻重复字符段用括号包裹,示例如下:

输入:"34455677775412"
期望输出:"344556(7777)5412"

原有代码问题梳理

你当前编写的代码存在以下问题:

  • 语法错误:if J[x] == J[x+1]判断语句后缺少英文冒号,同时代码缩进不符合Python语法要求
  • 逻辑缺陷:仅截取长度为2的子串做比较,无法识别长度大于2的连续重复段
  • 输出逻辑错误:括号打印时机不对,无法将完整的连续重复段包裹在括号内

修复后可运行代码

J = "34455677775412"
# 空串直接返回
if not J:
    print("")
    exit()

# 第一步:遍历统计最长连续重复段的起始位置和长度
max_len = 1
current_len = 1
max_start = 0
current_start = 0

for i in range(1, len(J)):
    if J[i] == J[i-1]:
        current_len += 1
    else:
        # 更新最长段信息
        if current_len > max_len:
            max_len = current_len
            max_start = current_start
        # 重置当前连续段计数
        current_len = 1
        current_start = i
# 循环结束后补充判断最后一段连续内容
if current_len > max_len:
    max_len = current_len
    max_start = current_start

# 第二步:拼接生成带括号的结果
result = J[:max_start] + "(" + J[max_start:max_start+max_len] + ")" + J[max_start+max_len:]
print(result)

代码说明

  • 先遍历全串统计所有连续重复段的长度和起始位置,记录最长段的信息
  • 再根据最长段的位置拼接字符串,将对应段包裹在括号内
  • 如果存在多个长度相同的最长连续重复段,默认标记第一个出现的段,如需调整标记逻辑可自行修改判断规则

内容的提问来源于stack exchange,提问作者emma.delia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 03:27:01