AtCoder ABC 066 B – ss Python解説

2021年11月21日

スポンサーリンク

ss

同じ文字列を 2 つ並べてできる文字列のことを偶文字列と呼ぶことにします。 例えば、 xyzxyz や aaaaaa は偶文字列ですが、ababab や xyzxy は偶文字列ではありません。

アルファベットの小文字からなる偶文字列 S が与えられます。 S の末尾の文字を 1 文字以上消して作れる偶文字列のうち、最も長い偶文字列の長さを求めて下さい。 与えられる入力では、条件を満たす 1 文字以上の文字列が存在することが保証されています。

AtCoder株式会社 AtCoder Beginner Contest 066

今回のコードを書く上で必要なのが、末尾の文字を消す方法。これはスライスを使って実装します。2つ目に、偶文字列になっているかのチェック。もし文字列が一緒なら文字列の長さを出力します。

s = input()

for _ in range(len(s)):
    s = s[: -1]
    if s[: len(s) // 2] == s[len(s)// 2: ]:
        print(len(s))
        break