Cho chuỗi, kiểm tra xem **tất cả** ký tự có phải chữ in hoa (A-Z) không. Trả về true/false. Ví dụ:
Đầu vào 1: "INDIA" → True.
Đầu vào 2: "Programmer" → False (chỉ P in hoa).
Phương pháp
- Đếm số ký tự in hoa (
c >= 'A' && c <= 'Z'). - Nếu đếm == độ dài chuỗi → true.
- Cũng coi là true nếu chuỗi rỗng hoặc chỉ có 1 ký tự in hoa ở đầu (theo logic gốc).
Ví dụ mã nguồn
#include <bits/stdc++.h>
using namespace std;
bool checkCapital(string s) {
int cnt = 0, loc = -1;
for (int i=0;i= 'A' && s[i] <= 'Z') {
cnt++;
loc = i;
}
}
// true nếu: tất cả in hoa, hoặc không có in hoa, hoặc chỉ có 1 in hoa ở đầu
return (cnt == s.size()) || (cnt == 0) || (cnt == 1 && loc == 0);
}
int main() {
string str = "INDIA";
cout << (checkCapital(str) ? "True" : "False");
return 0;
}
Kết quả
True
Logic này chấp nhận "INDIA" (true), "india" (true - không in hoa), "India" (true - chỉ đầu in hoa), "InDia" (false).