2016-04-01 14 views
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ので位置は、一つ二つの結果を持っていないはずです。これが起こっ続ける理由を誰かが説明できますか?「」」min関数は2つではなく1つの結果しか出力しません

+0

ザッツ理由で開始していますposition = positions [1:]の行で最初の結果を削除します。 –

+0

@PiotrDabkowski。私は今それを見る。ありがとう – FunmitoA

答えて

0

がある最初のインデックスは0です。



    positions = positions[0:] 

関連する問題