CODE FESTIVAL 2017 Final A - AKIBA
A
を挿入すべき位置を予め調べて決め打ちして挿入し、最終的にできた文字列が AKIHABARA
と一致するか見るコードにした。
余り綺麗ではなく、実際解説を読むと AKIHABARA
から A
を抜いた文字列を全列挙してどれかと一致するか見ればよい。この実装としては特にはむこさんの提出が素晴らしく、簡潔で読みやすくバグりにくいと思う。以下に引用する。
string s; cin >> s; for (auto a : {"", "A"}) for (auto b : {"", "A"}) for (auto c : {"", "A"}) for (auto d : {"", "A"}) { if (s == a + (string)"KIH" + b + (string)"B" + c + (string)"R" + d) { cout << "YES" <<endl; return 0; } } cout << "NO"<<endl;
上記 range-for の中にある initializer list は型どうなるんだろうと思ったら std::initializer_list<string>
になるらしい。参考:
最近イカはちょびちょびやってます。ガチホコが B+ から A- になりました。あとガチヤグラもいつのまにか A- から A になってた。ガチアサリは未だに B+ です。