
解題思路
模擬題就按照題目意思來做,題目分三種情況,那我們也分三種情況,通過設定flag用來標志第一位是大寫還是小寫,小寫的話,直接通過后面的都不能大寫來判斷,大寫的話,用count記錄后面的大寫的個數,count為1或者為字串長度才符合要求,代碼如下:
代碼
class Solution {
public:
// 判斷是否是小寫
bool judge(char c) {
return (c <= 'z' && c>= 'a');
}
bool detectCapitalUse(string word) {
// flag用來標志第一位是大寫還是小寫
bool flag = judge(word[0]);
int count = 1;
int len = word.length();
for(int i = 1; i < len; i ++) {
if(flag) {
// 第一位小寫要求后面的都不能大寫
if(!judge(word[i])) {
return false;
}
} else {
if(!judge(word[i])) {
count ++;
}
}
}
if(!flag) {
// 第一位大寫要求后面的要不全小寫,要不全大寫
if(count == 1 || count == len) {
return true;
} else {
return false;
}
}
return true;
}
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/356913.html
標籤:其他
