ABC023-B - 手芸王 を解く
ABC023-B - 手芸王
b
abc
cabca
bcabcab
abcabcabc
cabcabcabca
bcabcabcabcab
…
といった感じで文字列が作られていくとき
与えられた文字列が存在するかどうかを判定する問題
文字列の長さNの制約は 1≦N≦100 と小さいので
上記の手順をシミュレーションしても問題なさそうだ
提出したコード
# 入力 N=int(input()) S=input() # 手順 c=0 # 初期値 x='b' # 一致確認 if x==S: print(c) exit() # 手順フラグ 1->2->3->1->... f=1 # 最大100回まで for i in range(100): # 手順フラグ1のとき(左端に'a'、右端に'c') if f==1: x='a'+x+'c' f=2 # 手順フラグ2のとき(左端に'c'、右端に'a') elif f==2: x='c'+x+'a' f=3 # 手順フラグ3のとき(左端に'b'、右端に'b') elif f==3: x='b'+x+'b' f=1 # 手順数のカウント c+=1 # 一致確認 if x==S: print(c) exit() # 一致しなかった場合は'-1'を出力 print(-1)