python-3.x - 计算连续字符串的函数
问题描述
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
推荐阅读
- gitlab - 无法打印消息 无法更新 Gitlab 提交状态:找不到凭据 ID:由于为空 TaskListener
- mysql - 将 1 列转置为标题
- javascript - 在一个组件中控制和显示多个 reactstrap 进度条
- python - Discord 音乐机器人查找 yt 视频
- node.js - 从上游读取响应头时,NGINX 上游超时(110:连接超时)
- mongodb - mongodb 删除的文档保留在另一个引用它们的集合中
- python - 尝试使用 YouTube_DL 流式传输 YouTube 链接时出现错误“'NoneType' 对象没有属性 'play'”
- c# - 在 C# 中使用已知对象名称反序列化 JSON
- python - 使用 ShadowRoot 在打印预览应用程序中单击取消按钮
- api - 将 API 函数与现有数据帧相关联的循环中的错误