LeetCode 520. 检测大写字母

131 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第16天,点击查看活动详情

一、题目描述:

520. 检测大写字母 - 力扣(LeetCode)

我们定义,在以下情况时,单词的大写用法是正确的:

  • 全部字母都是大写,比如 "USA" 。
  • 单词中所有字母都不是大写,比如 "leetcode" 。
  • 如果单词不只含有一个字母,只有首字母大写, 比如 "Google" 。

给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false 。

示例 1:

输入:word = "USA"
输出:true

示例 2:

输入:word = "FlaG"
输出:false

提示:

  • 1 <= word.length <= 100
  • word 由小写和大写英文字母组成

二、思路分析:

  1. 给字符串中大写的字符统计出来
  2. 给字符串中小写的字符统计出来
  3. 判断是否全大写,或者全小写,符合就返回true
  4. 如果不符合,就判断是否只有首字母大写,符合就返回true
  5. 否则就返回false

三、AC 代码:

class Solution {
    public boolean detectCapitalUse(String word) {
        int d = 0;
        int x = 0;
        for(int i = 0;i<word.length();i++){
            if(word.charAt(i)>=65&&word.charAt(i)<=90){
                d++;
            }
            if(word.charAt(i)>=97&&word.charAt(i)<=122){
                x++;
            }
        }
        //全大写
        if(d==word.length()){
            return true;
        }
        //全小写
        if(x==word.length()){
            return true;
        }
        //首字母大写,其他小写
        if(word.charAt(0)>=65&&word.charAt(0)<=90&&x==word.length()-1){
            return true;
        }
        return false;
    }
}

四、总结:

此题其实正则也是一个不错的方法,特别适合这种规则的。

一行代码: word.isupper() 判断字母是否全部大写
word.islower() 判断字母是否全部为小写
word.istitle() 判读字母是否标题化,即首字母大写

范文参考:

时间击败96,最后判断首字母,首字母之外的出现不同即为错误 - 检测大写字母 - 力扣(LeetCode)

时间击败96,最后判断首字母,首字母之外的出现不同即为错误 - 检测大写字母 - 力扣(LeetCode)