はまやんはまやんはまやん

hamayanhamayan's blog

Chef And His Characters [February Challenge 2018 A]

https://www.codechef.com/FEB18/problems/CHEFCHR

文字列Sが与えられる。
ここから連続する4文字の文字列を取り出して、並び替えると"chef"になるようなものは何個あるか。
あるなら「lovely 個数」、ないなら「normal」で出力せよ。

解法

https://www.codechef.com/viewsolution/17299078

全ての連続する4文字の文字列を確認する。
chefのソート済み文字列と、連続する4文字の文字列をソートしたものを比較することで入れ替えて"chef"に出来るかを判定する。

string chef = "chef";
//---------------------------------------------------------------------------------------------------
void solve() {
    string s; cin >> s;
    int n = s.length();

    int ans = 0;
    rep(i, 0, n - 3) {
        string t = s.substr(i, 4);
        sort(all(t));
        if (t == chef) ans++;
    }

    if (ans == 0) printf("normal\n");
    else printf("lovely %d\n", ans);
}
//---------------------------------------------------------------------------------------------------
void _main() {
    sort(all(chef));

    int T;  cin >> T;
    rep(t, 0, T) solve();
}