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

如何使用Python查找字符串中最长连续重复字符序列

实现逻辑说明

collections.Counter仅能统计字符在整个字符串中的总出现次数,无法区分连续片段,需要补充遍历逻辑统计连续重复的字符序列。

方案1:轻量实现(面试场景推荐,无额外依赖)

a = 'abcxyzaaaabbbbbbb'
if not a:
    print("")
else:
    max_len = current_len = 1
    max_char = current_char = a[0]
    for c in a[1:]:
        if c == current_char:
            current_len += 1
            if current_len > max_len:
                max_len = current_len
                max_char = current_char
        else:
            current_char = c
            current_len = 1
    print(max_char * max_len)

运行输出:

bbbbbbb

方案2:基于原有代码补充逻辑(保留pandas、collections依赖)

import pandas as pd
import collections

a = 'abcxyzaaaabbbbbbb'
if not a:
    res = ""
else:
    # 提取所有连续重复片段
    continuous_seqs = []
    current_char = a[0]
    current_len = 1
    for c in a[1:]:
        if c == current_char:
            current_len += 1
        else:
            continuous_seqs.append(current_char * current_len)
            current_char = c
            current_len = 1
    # 加入最后一个片段
    continuous_seqs.append(current_char * current_len)
    # 取最长的片段
    res = max(continuous_seqs, key=lambda x: len(x))

# 保留原有统计逻辑,调整为统计连续片段长度
seq_counter = collections.Counter({seq: len(seq) for seq in continuous_seqs})
df = pd.Series(seq_counter)
print(df)
print("最长连续重复序列:", res)

运行后会先输出所有连续片段的长度统计Series,最后输出预期结果bbbbbbb。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 14:09:03