はじめに
https://atcoder.jp/contests/abc342/tasks に参加しました。今回でコンテスト参加5回目です(まだ灰色)。
毎回Pythonで書いています(Python以外の言語はほぼ無知です)。
A - Yay!
問題詳細
英小文字からなる文字列が与えられる。
1文字を除いて、すべて同じ文字で構成されている。
他の文字と異なる文字は、前から何文字目?
私の考え
1文字目と他の文字を比較して別の文字のindexを保持しよう。例外として1文字目のときだけ別処理しよう。文字列は100文字以下なので計算量は問題ない。
コード
S = list(input())
count_1 = 0
count_2 = 0
for i in range(1,len(S)):
if S[0] == S[i]:
count_1 += 1
else:
count_2 += 1
index = i
if count_2 == 1:
print(index+1)
else:
print("1")
考察
A問題は深く考えずに解いたので、1文字目が別の文字のときの場合を例外処理にしました。
今考えると1、2、3文字目を比較して多数派の文字が今回全体の多数派であるという処理から始めるのがよかった気と思います。