Yuulis.log

トンネルを抜けるとそこは参照エラーであった。

【AtCoder】ABC 338 A - Capitalized? | 茶コーダーが解くAtCoder

atcoder.jp

実行時間制限: 2 sec / メモリ制限: 1024 MB / Difficulty: 21

問題概要

英字からなる文字列  S が与えられる。「 S の先頭が大文字であり、それ以外の文字は全て小文字である」かを判定せよ。

制約

  •  S の長さは1以上100以下。

考察

AtCoderでたまに問われる、英字が大文字または小文字であるかを判定する問題。

C++ においては、英字が大文字かを判定するためにはisupper()関数が、小文字かを判定するにはislower()関数を使えばよい。

あとはループを回して各文字ごとに判定していけばOK。

コード

#include <bits/stdc++.h>
using namespace std;

using ll = long long;

#define rep(i, start, end) for (ll i = (start); i < (ll)(end); i++)

// ======================================== //

int main()
{
    string S;
    cin >> S;

    rep(i, 0, S.size())
    {
        if (!isupper(S[0]))
        {
            cout << "No" << endl;
            return 0;
        }
        else if (i >= 1 && !islower(S[i]))
        {
            cout << "No" << endl;
            return 0;
        }
    }

    cout << "Yes" << endl;
}

atcoder.jp

実装時間: 5分以内