arc019_2
B - こだわりの名前
一文字書き換えて回文にならないパターンが何件あるか数え上げる問題
対応する文字と一致してるかどうかをまずチェック
奇数個の中央以外に関して
ズレが1個であって、その文字がズレてる文字だと、書き換えて同じ文字になった時に回文になる
それ以外のパターンでは回文にならない
奇数個の中央に関して
ズレがゼロなら何をやっても回文
非ゼロなら何をやっても回文でない
間違えずに数え上げる
間違えまくりなのでテストが手軽に走らせられる仕組みは大事
間違いの例
添え字アクセス1つズレ S[-i] → S[-1-i]
==と!=の間違い
thenとelseを逆にしてた
%2と&1が混ざって&2にしてた
よくこんなに間違えたもんだ
code:python
def solve(S):
ret = 0
N = len(S)
if N == 1:
return 0
xs = [Si != S-1-i for i in range(N // 2)]
sums = sum(xs)
for x in xs:
if x:
if sums == 1:
ret += 24 * 2
else:
ret += 25 * 2
else:
ret += 25 * 2
if N & 1:
if sums != 0:
ret += 25
return ret
https://atcoder.jp/contests/arc019/submissions/15263014