leetcode520. Detect Capital

来源:互联网 发布:php数组是什么数据结构 编辑:程序博客网 时间:2024/06/07 02:37

520. Detect Capital

Given a word, you need to judge whether the usage of capitals in it is right or not.

We define the usage of capitals in a word to be right when one of the following cases holds:

All letters in this word are capitals, like “USA”.
All letters in this word are not capitals, like “leetcode”.
Only the first letter in this word is capital if it has more than one letter, like “Google”.
Otherwise, we define that this word doesn’t use capitals in a right way.

Example 1:Input: "USA"Output: TrueExample 2:Input: "FlaG"Output: False

Note: The input will be a non-empty word consisting of uppercase and lowercase latin letters.

解法一

分情况讨论:第一个字符是大写还是小写,大写的话,第二个字符是大写还是小写。

public class Solution {    public boolean detectCapitalUse(String word) {        if (word == null || word.length() == 0 || word.length() == 1) {            return true;        }        char[] arr = word.toCharArray();        int flag = 0;        if (arr[0] > 'Z') {            for (int i = 1; i < arr.length; i++) {                if (arr[i] <= 'Z') {                    return false;                }            }        } else {            if (arr[1] <= 'Z') {                for (int i = 2; i < arr.length; i++) {                    if (arr[i] > 'Z') {                        return false;                    }                }            } else {                for (int i = 2; i < arr.length; i++) {                    if (arr[i] <= 'Z') {                        return false;                    }                }            }        }        return true;    }}

解法二

要么都是小写字母,要么都是大写字母,要么只有第一个字母是大写字母

public class Solution {    public boolean detectCapitalUse(String word) {        if (word == null || word.length() == 0 || word.length() == 1) {            return true;        }        int cnt = 0;        for (char c : word.toCharArray()) {            if ('Z' - c >= 0) {                cnt++;            }        }        return ((cnt == 0 || cnt == word.length()) || (cnt == 1 && 'Z' - word.charAt(0) >= 0));    }}