首页 > 解决方案 > 查找唯一的子字符串并保留序列

问题描述

我正在尝试编写一个采用字符串的方法,例如 DNA 字符串并输出带有子字符串的数字并保留序列。

例如:

>>dna = AABBBGGGKKDDDD
>>substring(dna) #some method
>>2A3B3G2K4D

我猜我可以有一个空数组,然后创建一个循环遍历每个字母,如果它是同一个字母,它会进行计数,然后在最后添加字母。我只是不确定如何在语法上写出来。任何帮助,将不胜感激 :)

标签: pythonarraysstring

解决方案


itertools.groupby()非常适合这项任务:

from itertools import groupby

def get_sequence(dna):
    return ''.join(str(len(tuple(g))) + k for k, g in groupby(dna))

print(get_sequence('AABBBGGGKKDDDD'))
# 2A3B3G2K4D

推荐阅读