首页 > 解决方案 > 计算连续字符串的函数

问题描述

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)的最大出现次数。

我尝试使用我的代码进行迭代,直到遇到这样的字符串,然后从那里执行另一个循环,其中包含字符串长度的步骤以查找更多并计数,直到我没有遇到另一个。我看不出我的逻辑有任何缺陷。无论是使用我的代码还是替代方案,都可以在解决该问题方面提供任何帮助。

标签: python-3.xstringfunction

解决方案


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

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

推荐阅读