擅长:python、mysql、java
<p>我不知道为什么你得到一个空列表作为你的输出之一-当我运行你的代码上面我只得到[0]作为打印输出。在</p>
<p>具体地说,您的代码目前只检查字符子串的精确匹配,而没有使用您还包括的hamming距离定义。在</p>
<p>下面将返回您期望的结果:</p>
<pre><code>Pattern = "GAGCGCTGG"
Text = "GAGCGCTGGGTTAACTCGCTACTTCCCGACGAGCGCTGTGGCGCAAATTGGCGATGAAACTGCAGAGAGAACTGGTCATCCAACTGAATTCTCCCCGCTATCGCATTTTGATGCGCGCCGCGTCGATT"
d = 3
def HammingDistance(p, q):
d = 0
for p, q in zip(p, q): # your code here
if p!= q:
d += 1
return d
def ApproximatePatternMatching(Pattern, Text, d):
positions = [] # initializing list of positions
for i in range(len(Text) - len(Pattern)+1):
# and using distance < d, rather than exact matching
if HammingDistance(Pattern, Text[i:i+len(Pattern)]) < d:
positions.append(i)
return positions
print (ApproximatePatternMatching(Pattern, Text, d))
</code></pre>