Codeforces 420 Coder-Strike 2014 - Finals (online edition, Div. 1) A. Start Up
Div1のコンテストで8位だった。
けどレート130くらいしか上がらなかった…
問題
英大文字からなる入力が与えられる。
この文字を左右に反転させても同じかどうかを判定せよ。
文字列を左右反転とは、各アルファベットを鏡像反転させて、逆順に読むことを言う。
制約条件
長さ≦10^5
方針
鏡像反転させられる文字はAHIMOTUVWXY.
入力も大きくないので愚直にチェックすればよい
ソースコード
int main(){ const char *s = "AHIMOTUVWXY"; bool ok[256] = {}; bool ans = 1; rep(i, strlen(s)) ok[s[i]] = 1; string in; cin >> in; rep(i, in.size()) if(!ok[in[i]] || in[i] != in[in.size() - 1 - i]) ans = 0; cout << (ans ? "YES" : "NO") << endl; return 0; }