[LeetCode]520 Detect Capital

来源:互联网 发布:单片机交通灯实验报告 编辑:程序博客网 时间:2024/05/19 20:44

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:

  1. All letters in this word are capitals, like "USA".
  2. All letters in this word are not capitals, like "leetcode".
  3. 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.

Simple Java Solution O(n) time O(1) space
    public boolean detectCapitalUse(String word) {        return word.equals(word.toUpperCase()) ||                word.equals(word.toLowerCase()) ||               Character.isUpperCase(word.charAt(0)) &&                word.substring(1).equals(word.substring(1).toLowerCase());    }

A slightly more verbose, but more efficient solution:

    public boolean detectCapitalUse(String word) {        int numUpper = 0;        for (int i=0;i<word.length();i++) {            if (Character.isUpperCase(word.charAt(i))) numUpper++;        }        if (numUpper == 1) return Character.isUpperCase(word.charAt(0));        return numUpper == 0 || numUpper == word.length();    }


0 0
原创粉丝点击