2つ文字列が与えられます。1つ目は見本で、2つ目は、見本とは形が少し違うものです。2つ目の文字列を1つ目の文字列と同じにしたいのですが、左から右へしか動かすことはできないというルールがあります。例えば、abcをcabに直したいときは、abc->bca->cabとしなければなりません。そして最後に、最短で何回動かしたかを出力するのが目的となっています。以下のコードは、思考中だった時の失敗コードなのですが、2点だけわからないところがあります。
その内容は、
1.出力結果は4つ出てくると考えるのですが、結果は3つなのはなぜか。
2.出力されるtotalの最後が1と出力されるのは、なぜか。
です。
python
1r=[5, "APPLE", "LEAPP"] #左から、文字数、見本の文字、修正する文字 です。 2num=int(r[0]) 3total=0![イメージ説明](579b966b29c1558bdca0a87c0486de6c.jpeg) 4model=[] 5target=[] 6for i in range(num): 7 model.append(r[1][i]) 8 target.append(r[2][i]) 9def sorten(total): 10 for i in range(num): 11 #print(total) 12 #print(target) 13 if model[i]!=target[i]: 14 moji=target[0] 15 target.pop(0) 16 target.append(moji) 17 #print(target) 18 total+=1 19 sorten(total) 20 print(total) 21sorten(total)
以下の質問が似てる問題な気がします
https://teratail.com/questions/170500
回答1件
あなたの回答
tips
プレビュー