码迷,mamicode.com
首页 > 其他好文 > 详细

520-检测大写字母

时间:2020-01-23 18:19:24      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:string   次数   char   两种   toc   com   false   fir   记录   

520-检测大写字母

给定一个单词,你需要判断单词的大写使用是否正确。

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

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

否则,我们定义这个单词没有正确使用大写字母。

示例 1:

输入: "USA"
输出: True

示例 2:

输入: "FlaG"
输出: False

注意: 输入是由大写和小写拉丁字母组成的非空单词。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/detect-capital
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    public boolean detectCapitalUse(String word) {
        if(word.length() == 0 || word.length() == 1) {
            return true;
        }

        char[] chars =  word.toCharArray();
        char start = chars[0];
        char sec = chars[1];
        boolean isBig;
        if(isLowercase(start)) {
            if(isUppercase(sec)) {
                return false;
            } else {
                // 全部小写
                isBig = false;
            }
        } else {
            isBig = !isLowercase(sec);
        }

        for(int i = 2; i < word.length(); i++) {
            if(!(isBig && isUppercase(chars[i])
                    || !isBig && isLowercase(chars[i]))) {
                return false;
            }
        }
        return true;
    }

    // 调用API:Character.isUpperCase
    private boolean isUppercase(char c) {
        return c <= 'Z' && c >= 'A';
    }

    private boolean isLowercase(char c) {
        return c <= 'z' && c >= 'a';
    }
// 调用API,时间长,不推荐
// 将字符串全都转成大小写与原字符串比较。将字符串首字母大写,其余小写比较。
class Solution {
    public boolean detectCapitalUse(String word) {
        if (word.equals(word.substring(0, 1).toUpperCase() + word.substring(1).toLowerCase())) {
            return true;
        }
        return word.toUpperCase().equals(word) || word.toLowerCase().equals(word);
    }
}

作者:wo-shi-a-miao-jiang
链接:https://leetcode-cn.com/problems/detect-capital/solution/jian-dan-ti-jiang-zi-fu-chuan-quan-du-zhuan-cheng-/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
// 符合两种情况即可:
// 1.如果第二个字母之后是大写字母,则前一个字母都为大写字母。
// 2.如果第三个字母之后是小写字母,则前一个字母为小写字母。
// 读取次数较多,不推荐
public class DetectCapitalUse {
    public boolean detectCapitalUse(String word) {
        char[] letters = word.toCharArray();
        for (int i = 1; i < letters.length; i++) {
            if (Character.isUpperCase(letters[i]) && Character.isLowerCase(letters[i-1])) {
                return false;
            }

            if ( i != 1 && Character.isLowerCase(letters[i]) && Character.isUpperCase(letters[i-1])) {
                return false;
            }
        }

        return true;
    }
}

作者:xiao-le-14
链接:https://leetcode-cn.com/problems/detect-capital/solution/javashi-xian-by-xiao-le-14/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
// 另一种思路:记录大写字母个数
class Solution {
    public boolean detectCapitalUse(String word) {
        char[] s = word.toCharArray();
        char first = s[0];
        int count = 0;
        for (int i = 0; i < s.length ; i++) {
            if (s[i] >= 65 && s[i] <= 90){
                count++;
            }
        }
        if (count == word.length()){
            return true;
        }
        if (first >= 65 && first <= 90 && count == 1){
            return true;
        }
        if (count == 0){
            return true;
        }
        return false;
    }
}

作者:cztchange
链接:https://leetcode-cn.com/problems/detect-capital/solution/chao-ji-jian-dan-de-jie-fa-java-by-cztchange/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

520-检测大写字母

标签:string   次数   char   两种   toc   com   false   fir   记录   

原文地址:https://www.cnblogs.com/angelica-duhurica/p/12230885.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!