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

hamayanhamayan's blog

uNrEaDaBlE sTrInG [SOMPO HD プログラミングコンテスト2021(AtCoder Beginner Contest 192) B]

https://atcoder.jp/contests/abc192/tasks/abc192_b

解説

https://atcoder.jp/contests/abc192/submissions/20343662

各文字毎に奇数番目、偶数番目で判定していく。
C++であれば、判定はasciiコードを使用した判定方法を使うのがフルスクラッチでやるには簡単。
大文字であれば文字コードがA~Zの間に、小文字であればa~zの間に収まることを利用して小文字大文字を判定する。
自分の実装では満たすなら何もしないし、満たさないならnoと返すようにしている。

string S;
//---------------------------------------------------------------------------------------------------
#define yes "Yes"
#define no "No"
string solve() {
    int N = S.length();
    rep(i, 0, N) {
        if (i % 2 == 0 && 'a' <= S[i] && S[i] <= 'z') {}
        else if (i % 2 == 1 && 'A' <= S[i] && S[i] <= 'Z') {}
        else return no;
    }
    return yes;
}
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> S;
    cout << solve() << endl;
}