問題
要は隣り合わせのCharを交換しろってこと
これ情けないですがわかりませんでした.....
たとえば、隣り合わせの2文字をSliceして、交換して、残った文字をくっつける回答を考えてたのですが、前につけるのか後ろにつけるのかの判定がややこしすぎないか?ってなって回答みました...
解法
ただ単純に文字列値の位置を交換するようなときは、一旦 list
に変換して交換してあげればよいだけでしたね.
あと、listをcopyするときのメソッドもちょうど調べたのでせっかくなので使ってます.
公式回答の通り、また元に戻すだけで全く問題ないのですが.
サンプル
s = list(input()) t = list(input()) ans = "No" org = s.copy() if s == t: ans = "Yes" else: for i in range(len(s)-1): s[i], s[i+1] = s[i+1], s[i] if s == t: ans = "Yes" break s = org.copy() print(ans)