A - Capitalized?
問題文の通りに判定します。大文字かどうか、小文字かどうかはそれぞれisupper、islowerなどで判定できます。
S = input() print("Yes" if S[0].isupper() and all(i.islower() for i in S[1:]) else "No")
#include <bits/stdc++.h> using namespace std; int main() { string S; cin >> S; bool ok = true; if (!isupper(S[0])) { ok = false; } for (char i: S.substr(1)) { if (!islower(i)) { ok = false; } } cout << (ok ? "Yes" : "No") << '\n'; }
import strutils, sequtils let S = stdin.readLine echo: if S[0].isUpperAscii and S[1..<len(S)].allIt(it.isLowerAscii): "Yes" else: "No"
また、言語によっては文字列をcapitalizeする関数もあります。
S = input() print("Yes" if S.capitalize() == S else "No")
import strutils, unicode let S = stdin.readLine echo if S.toLower.capitalize == S: "Yes" else: "No"
istitleは文字列のすべての単語がcapitalizeされているかどうかを判定する関数で、今回の場合はスペースが文字列に含まれていないので使うことができます。
S = input() print("Yes" if S.istitle() else "No")
また、文字列は比較ができるので、isupperなどを知らなくても解けます。
S = input() print("Yes" if S[0] <= "Z" and all(i >= "a" for i in S[1:]) else "No")
#include <bits/stdc++.h> using namespace std; int main() { string S; cin >> S; bool ok = true; if (S[0] > 'Z') { ok = false; } for (char i: S.substr(1)) { if (i < 'a') { ok = false; } } cout << (ok ? "Yes" : "No") << '\n'; }
import strutils, sequtils let S = stdin.readLine echo: if S[0] <= 'Z' and S[1..<len(S)].allIt(it >= 'a'): "Yes" else: "No"