考えて競プロする

プログラミングコンテストの問題をどう考えて解いたかを記録していくブログです。使用言語はPython3

ABC103-B - String Rotation を解く

ABC103-B - String Rotation

 

2つの文字列が与えられる

一方の文字列が、もう一方の文字列を回転させて

出来たものであるかどうかを判定する問題

 

回転とは以下のような処理のことを指す(わかりやすくするよう一部着色した)

 

ABCDE

EABCD

DEABC

CDEAB

BCDEA

ABCDE

 

文字列の右端の文字を左端に持っていくようにすれば

シミュレーションすることができる

 

片方の文字列を一回転するまで動かして最後まで一度も一致しなければ

2つの文字列は一致しない文字列であると判断できる

 

以上を踏まえて書いたコードを以下に示す

 

提出したコード

# 入力
S=input()
T=input()

for i in range(len(S)):
  # 回転
  S=S[-1]+S[:-1]

  # 一致する場合
  if S==T:
    print('Yes')
    exit()

# 最後まで一致しなければ'No'
print('No')

 

提出結果はACでした