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

求编写Python程序:查找最长非重叠重复子串,多候选取出现次数最多者

需求:查找最长非重叠重复子串的Python程序

需求说明

  • 编写Python程序,用于查找最长的非重叠重复子串
  • 优先级规则:
    • 第一优先级:子串长度最长
    • 第二优先级:仅当多个子串长度相同时,选取出现次数最多的;次数相同则可返回任意一个
    • 核心限制:子串不允许重叠
  • 特殊处理:若不存在出现次数超过1次的子串,返回原字符串

示例

  1. 若存在一个长度为4、出现2次的子串,以及一个长度为3、出现3次的子串,应返回长度为4的子串
  2. 若存在两个长度均为4、均出现2次的子串,返回其中任意一个即可
  3. 若不存在出现次数超过1次的子串,返回原字符串
  4. 对于字符串"grhasdfjlksegkasdfdfshlgkjsdngbkj",应返回"asdf",因为它是出现次数最多的最长重复子串

尝试的代码

line = "grhasdfjlksegkasdfdfshlgkjsdngbkj"
li = list(line)
c = 0
pu = 0
m = {}
for s in li:
    sta = s
    if pu == 0:
        css = c
        oln = line
        while True:
            st = sta + li[css+1]
            print(st)
            ln = line
            for i in range(pu):
                ln = ln[:css+i] + ln[(css+i+1):]
            if st in ln:
                pu += 1
                css += 1
                oln = line
                sta = st
            else:
                m[pu] = sta
                line = oln
                break
            c += 1
    else:
        pu -= 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 20:45:28