2016-11-22 5 views
-6
edited = False 
i, j = 0, 0 
while i < len(s1) and j < len(s2): 
    if s1[i] != s2[j]: 
     if edited: 
      return False 
     edited = True 
     j += 1 
    else: 
     i += 1 
     j += 1 
return True 

if editedステートメントのコードは何ですか?だからFalseならFalseを返します。コード内でif文が何をしていますか?

出典:editedある場合https://github.com/careercup/CtCI-6th-Edition-Python/blob/master/Chapter%201/5_One%20Away/OneAway.py

+2

いいえ、* True *の場合、この関数はFalseを返します。 'ed1'は' s1 [i]!= s2 [j] 'が真であれば真になり、二度目は真であれば' False'を返します。 –

+0

は編集済みです。もしあなたがその枝に入るかどうかを決定するために使うことができます。 – BufBills

答えて

1

ありませんが、この関数はFalseを返します。 editedが最初に設定されます。if s1[i] != s2[j]が真であり、2回目のテストが真の場合、関数はFalseを返します。

コードとs2の間に1つの違いがあるかどうかをテストします。変更が1つだけの場合、関数はTrueを返し、そうでない場合はFalseを返します。

関連する問題