【问题标题】:Function to count consecutive strings计算连续字符串的函数
【发布时间】:2020-12-14 19:55:40
【问题描述】:
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.x string function


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 2018-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多