Given a word, you need to judge whether the usage of capitals in it is right or not.api
We define the usage of capitals in a word to be right when one of the following cases holds:this
Otherwise, we define that this word doesn't use capitals in a right way.spa
Example:code
Input: "USA" Output: True Input: "FlaG" Output: False
My Solution:blog
public class Solution { public boolean detectCapitalUse(String word) { String upper = "[A-Z]+"; String lower = "[a-z]+"; String other = "[A-Z]?[a-z]+"; return word.matches(upper) || word.matches(lower) || word.matches(other); } }
Others' Solution:leetcode
//1 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()); } //2 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 == 0 || numUpper == word.length()) return true; if (numUpper == 1) return Character.isUpperCase(word.charAt(0)); return false; }