LeetCode 520——檢測大寫字母
阿新 • • 發佈:2021-02-16
技術標籤:LeetCode刷題
一、題目介紹
給定一個單詞,你需要判斷單詞的大寫使用是否正確。
我們定義,在以下情況時,單詞的大寫用法是正確的:
全部字母都是大寫,比如"USA"。
單詞中所有字母都不是大寫,比如"leetcode"。
如果單詞不只含有一個字母,只有首字母大寫,比如"Google"。
否則,我們定義這個單詞沒有正確使用大寫字母。
示例 1: 輸入: "USA" 輸出: True 示例 2: 輸入: "FlaG" 輸出: False 注意: 輸入是由大寫和小寫拉丁字母組成的非空單詞。
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/detect-capital
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
二、解題思路
本題只需按照題目要求,判斷三種正確情況即可。本文通過記錄首字母是否大寫和大寫字母的個數,完成三種情況的判斷。詳見程式碼。
三、解題程式碼
class Solution { public: bool detectCapitalUse(string word) { //首先判斷首字母是否大寫:(1)如果第一個字母是大寫,後面全是小寫正確;(2)如果全是大寫正確 //其次如果首字母是否小寫:(1)如果是小寫,後面都是小寫才正確 int n = word.size(); int flag = 0; //記錄首字元是否為大寫 int count = 0; //記錄大寫字母的個數 for(int i = 0; i < n; ++i) { if(word[i] >= 'A' && word[i] <= 'Z') { count++; if(i == 0) flag = 1; } } //如果首字母大寫,且大寫字母的個數為1或者n if(flag == 1 && (count == 1 || count == n)) return true; else if(flag == 0 && count == 0) return true; else return false; } };