leetcode 520. Detect Capital

来源:互联网 发布:詹姆斯对热火数据 编辑:程序博客网 时间:2024/06/05 18:13

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.

Example 1:

Input: "USA"Output: True

Example 2:

Input: "FlaG"Output: False

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

这个很简单。

public class Detect_Capital_520 {public boolean ifAllUpperCase(char[] a,int begin,int length){for(int i=begin;i<length;i++){if(a[i]<'A'||a[i]>'Z'){return false;}}return true;}public boolean ifAllLowerCase(char[] a,int begin,int length){for(int i=begin;i<length;i++){if(a[i]<'a'||a[i]>'z'){return false;}}return true;}public boolean detectCapitalUse(String word) {char[] a=word.toCharArray();int length=a.length;if(a[0]>='A'&&a[0]<='Z'){return ifAllUpperCase(a, 1, length)||ifAllLowerCase(a, 1, length);}else if(a[0]>='a'&&a[0]<='z'){return ifAllLowerCase(a, 1, length);}else{return false;}}public static void main(String[] args) {// TODO Auto-generated method stubDetect_Capital_520 d=new Detect_Capital_520();System.out.println(d.detectCapitalUse("flaG"));}}
大神直接用正则:
public boolean detectCapitalUse(String word) {    return word.matches("[A-Z]+|[a-z]+|[A-Z][a-z]+");}
或者直接判断大写字母的个数,大写字母有0个或者string.length个都返回true,还有一种情况是大写字母有1个,同时首字母是大写字母。
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
原创粉丝点击