【字符串】【打卡74天】leetCode每日一题:520. 检测大写字母

1、题目描述

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

全部字母都是大写,比如 "USA" 。
单词中所有字母都不是大写,比如 "leetcode" 。
如果单词不只含有一个字母,只有首字母大写, 比如 "Google" 。
给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false 。

2、算法分析

 

知识补充:判断一个字符是否为大写字母Character.isUpperCase(char c):判断字符是否为大写字母;大写为true;小写为false;

先将字符串转化为字符数组,遍历字符数组,判断每一个字符是否为大写字母。是的话,计数count++记录大写字母的个数。

如果count == 0,说明字符串中都是小写字母;

如果count  == arr.length,说明字符串中都是大写字母;

如果count == 1 && Character.isUpperCase(arr[0]),说明字符串中第一个字符为大写字母,其余的都是小写字母;

符合以下3种情况返回true:

①字符串中的字符全是大写字母

②字符串中的字符全是小写字母

③字符串中的第一个字符是大写字母,其余的都是小写字母

3、代码实现

class Solution {
    public boolean detectCapitalUse(String word) {
        if(word == null || word.length() == 0){
            return false;
        }
        int count = 0;
        char[] arr = word.toCharArray();
        for(int i = 0;i < arr.length;i++){
            if(Character.isUpperCase(arr[i])){
                count++;
            }
        }
        if(count == 0){
            return true;
        }
        if(count == arr.length){
            return true;
        }
        if(count == 1 && Character.isUpperCase(arr[0])){
            return true;
        }
        return false;
    }
}

猜你喜欢

转载自blog.csdn.net/Sunshineoe/article/details/121308681