函数对连续字符串进行计数


def DNAalg(STR, seq):
count = 0
maximum = 0

for i in range(len(seq)):
if seq[i:i+len(STR)] == STR:

for k in range(i, len(seq), len(STR)):
if seq[k:k+len(STR)] == STR:
count += 1

else:
if count>maximum:
maximum = int(count)
count = 0
break
return maximum
seq = "GCTAAATTTGTTCAGCCAGATGTAGGCTTACAAATCAAGCTGTCCG...... many more letters"
STR = "AGATC"
print(DNAalg(STR,seq))

我想找出长字符串(seq(中连续字符串(STR(的最大出现次数。

我试着用我的代码进行迭代,直到我遇到这样一个字符串,然后用字符串长度的步长进行另一个循环,以寻找更多的字符串,并向上计数,直到我没有遇到另一个字符串。我看不出我的逻辑有任何缺陷。在解决该问题时,无论是使用我的代码还是其他选项,我们都将不胜感激。

break语句使我退出循环,而不将计数重置回0。这就是代码中的缺陷。谢谢你的帮助。

else:
if count>maximum:
maximum = int(count)
count = 0
else:
count = 0
break

最新更新