LeetCode 520. 檢測大寫字母【力扣,我愛你】

題目描述

給定一個單詞,你需要判斷單詞的大寫使用是否正確。

我們定義,在以下情況時,單詞的大寫用法是正確的:

全部字母都是大寫,比如"USA"。
單詞中所有字母都不是大寫,比如"leetcode"。
如果單詞不只含有一個字母,只有首字母大寫, 比如 “Google”。
否則,我們定義這個單詞沒有正確使用大寫字母。

示例 1:

輸入: “USA”
輸出: True

示例 2:

輸入: “FlaG”
輸出: False

注意: 輸入是由大寫和小寫拉丁字母組成的非空單詞。

解題思路

今天520 , 力扣,我愛你(超大聲)

記錄有多少個大寫字母即可。用C++內置 isupper()來判斷大寫字母。

遍歷字符串,如果當前是大寫字母,就判斷當前大寫字母累計個數是否小於當前下標,如果小於當前小標,則不符合。如 AbCd。

最終判斷是否爲全大寫或只是首字母大寫即可。

AC

class Solution {
public:
    bool detectCapitalUse(string word) {
        int cnt=0;
        for(int i=0;i<word.size();i++)
            if(isupper(word[i]) && cnt++<i) return false;
        return cnt==word.size() || cnt<=1;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章