練習でDiv2 Easyも。
http://community.topcoder.com/stat?c=problem_statement&pm=12325
文字列が回文かどうか判定するよくある問題。
間で連続する文字をまとめる処理が入る。
最初1文字ずつ見てまとめ処理をしてたけど、STLのuniqueで書きなおしてみた。
class FauxPalindromes { public: string classifyIt(string word) { int ok,i; int L=word.size(); ok=1; FOR(i,L) if(word[i]!=word[L-1-i]) ok=0; if(ok) return string("PALINDROME"); word.erase(unique(word.begin(),word.end()),word.end()); ok=1; L=word.size(); FOR(i,L) if(word[i]!=word[L-1-i]) ok=0; if(ok) return string("FAUX"); return string("NOT EVEN FAUX"); } };
まとめ
回文の判定って、真ん中まで判定しようとすると偶数奇数でたまに混乱するので、最後まで判定する方がラクだね。