0
def Skew(Text):
skew = {}
n = len(Text)
skew[0] = 0
for i in range(1,n+1):
#Every time we encounter a G, skew[i] is equal to skew[i-1]+1
if Text[i-1] == "G": skew[i] = skew[i-1]+1
#every time we encounter a C, Skew[i] is equal to Skew[i-1]-1
elif Text[i-1] == "C": skew[i] = skew[i-1]-1
#otherwise, Skew[i] is equal to Skew[i-1]
else: skew[i] = skew[i-1]
return skew
Text = "CCGGCCGG"
positions = [] #output variable
skew = Skew(Text)
print skew
minimum = min(skew.values())
print minimum
#use the for loop, to look for i when Skew[i]=minimum
for i in skew:
if skew[i] == minimum: positions.append(i)
positions = positions[1:]
print positions
「」「這是我的代碼(道歉,第一次使用),但它不會做我想做的。如果你運行代碼,最小值爲 - 2,有2個按鍵與-2所以位置應該有兩個結果,而不是一個。有人可以解釋爲什麼這種情況持續發生?「」」分函數只打印一個結果,而不是兩個
那是因爲你用這一行刪除第一個結果:positions = positions [1:]。 –
@PiotrDabkowski。我現在看到了。謝謝 – FunmitoA