ABC342 A問題の解説(Python)

はじめに

この記事では、ABC342のA問題を解説していきます。

ABC(AtCoder Beginner Contest)とは、AtCoderが開催している、競技プログラミングコンテストです。

ABC342 A – Yay!

問題

問題

文字列Sはある1文字を除いて全て同じ文字で構成されています。他のどの文字とも異なる文字は前から何文字目かを求める問題です。

制約

  • \(3 \leqq len(S) \leqq 100 \)

思考の筋道

2重for文を用いて、 i 文字目が他のどの j 文字目とも異なるかどうかを調べればよいでしょう。

i文字目が他のどのj文字目とも異なれば、i文字目が答えです。反対に、いずれかのjでi文字目とj文字目が一致すれば、i文字目は答えではないので次のiを調べます。

S=”yey”のとき
  • 1文字目の”y”
    2文字目の”e”とは異なるが、3文字目の”y”と同じなので答えでない
  • 2文字目の”e”
    1文字目の”y”とも3文字目の”y”とも異なるので、答えである

なお、他のすべての文字と異なるのかを調べるのではなく、他の2文字と異なるのかを調べる方法もあります。例えば前後の2文字などです。この方法の場合、両端の処理に注意しましょう。

A問題にしては難しい問題ですね……。

コード

S = input()

n = len(S)

for i in range(n):
    flg = True
    for j in range(n):
        if i != j and S[i] == S[j]:
            flg = False
            break
    if flg:
        print(i + 1)

以上、ABC342のA問題の解説でした!

では、またね。

リンク