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

求编写实现DNA字符串特定连续字符编码的Python代码

DNA字符串游程编码实现

需求说明

对DNA字符串执行游程编码,规则如下:

  • 连续重复的相同字符,若重复次数大于1,编码为「重复次数+字符」
  • 若重复次数为1,直接保留原字符

示例

示例1:

input_string = "AAABCCCCDDA"
output_string = "3AB4C2DA"

示例2:

input_string = "ABBBBCCDDDDAAAAA"
output_string = "A4B2C4D5A"

Python实现代码

利用itertools.groupby高效处理连续重复字符分组,代码如下:

import itertools

def dna_encode(input_str):
    encoded = []
    for char, group in itertools.groupby(input_str):
        count = len(list(group))
        encoded.append(f"{count}{char}" if count > 1 else char)
    return ''.join(encoded)

# 测试示例
if __name__ == "__main__":
    test1 = "AAABCCCCDDA"
    print(dna_encode(test1))  # 输出: 3AB4C2DA
    
    test2 = "ABBBBCCDDDDAAAAA"
    print(dna_encode(test2))  # 输出: A4B2C4D5A

代码说明

  1. itertools.groupby(input_str)将字符串中连续相同的字符分组,返回每组的字符及对应迭代器
  2. 通过len(list(group))统计每组字符的重复次数
  3. 根据次数选择编码格式,用列表存储片段(列表拼接比字符串累加效率更高)
  4. 最后通过''.join(encoded)生成最终编码字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 00:25:22