def PatternCount(Text,Pattern):
count = 0
for i in range(0,len(Text)-len(Pattern)):
if Text[i:len(Pattern)] == Pattern:
count = count + 1
return count
Text = input("enter DNA string")
Pattern = input("enter 1st Pattern")
这是我的密码。
- 输入:字符串文本和模式
- 输出:计数(文本、图案(
例如:
- 样本输入:
- 文本:GCGCG
- 图案:GCG
- 样本输出:
- 2
Text[i:len(Pattern)]
中的第二个数字不是长度,而是最终位置。您需要将i
添加到其中。
此外,要找到最终匹配,您需要再迭代一个循环。
def PatternCount(Text,Pattern):
count = 0
for i in range(0, 1 + len(Text) - len(Pattern)):
if Text[i:i + len(Pattern)] == Pattern:
count = count + 1
return count
Text = input("enter DNA string ")
Pattern = input("enter 1st Pattern ")
print(PatternCount(Text,Pattern))
除了choroba所示的校正函数外,您还可以使用finditer
-
import re
print(len(list(re.finditer("(?=%s)" % Pattern, Text))))
-或者具有相同零宽度先行模式的CCD_ 4。