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

Python3如何通过识别最大重复模式将字符串列表转为元组列表?

字符串模式提取与内存优化需求

核心需求

  • 处理由无空格大字符串组成的列表,识别其中重复字符模式,转换为两个列表:
    • 模式列表:仅存储所有唯一模式一次,单个模式长度至少为2(特殊情况除外),且尽可能长(指针本身占用内存,需平衡模式长度与指针数量);单次出现的模式用单个指针表示。
    • 指针列表:由指向模式列表的索引构成的元组/列表,需能完全还原原始字符串。
  • 算法需达到最优线性复杂度,确保处理用户输入时效率足够,避免过长等待。
  • 解压逻辑必须极简,可在无zlib等压缩库支持的低内存简单语言中实现(允许压缩侧算法复杂)。

示例说明

输入:

['FOOBAR', 'BARFOO']

期望输出:

模式列表:['FOO', 'BAR']
指针列表:[(0, 1), (1, 0)]

功能演示脚本

def getLists(str_list):
    # 待实现逻辑
    return pointers, out_strings


strings = ["FGJohnyRFGDERT", "VBSJohnR", "AAERFGR"]
pointers, out_strings = getLists(strings)
print(pointers, out_strings)
# 预期输出: [(0, 1, 2, 0, 3, 4, 5), (6, 1, 7), (8, 4, 0, 7)] ["FG", "John", "yR", "D", "ER", "T", "VBS", "R", "AA"]

补充说明

曾考虑使用zlib等通用压缩算法,但因需在无对应库支持的低内存简单语言中解压,因此仅允许压缩侧逻辑复杂,解压逻辑必须极简。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 00:31:14