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

hamayanhamayan's blog

okyoech [東京工業大学プログラミングコンテスト2019 B]

https://atcoder.jp/contests/ttpc2019/tasks/ttpc2019_b

解説

https://atcoder.jp/contests/ttpc2019/submissions/7225374

各文字列について、それぞれ判定をする。
判定については、「okyo」となる先頭と「ech」となる先頭を全探索する方法で行った。
okyoとなる先頭がs1番目、echとなる先頭がs2番目とする。
S[s1:s1+3] == "okyo"、かつ、S[s2:s2+2] == "ech"であればYesを返す。
そうなる組み合わせがなければNoを返す。

int N; string S;
//---------------------------------------------------------------------------------------------------
#define yes "Yes"
#define no "No"
string okyo = "okyo";
string ech = "ech";
string solve() {
    int n = S.length();
    rep(s1, 0, n) rep(s2, s1 + 4, n) {
        bool ok = true;
        rep(i, 0, 4) if(S[s1 + i] != okyo[i]) ok = false;
        rep(i, 0, 3) if(S[s2 + i] != ech[i]) ok = false;
        if(ok) return yes;
    }
    return no;
}
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N;
    rep(i, 0, N) {
        cin >> S;
        cout << solve() << endl;
    }
}