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".
Link to GitHub :code
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.
Solution
- We need to have a counter variable
- if the difference between the current character and capitol character is greater than zero than increment the count
- If the count is zero or the count and length are same or count is 1 and difference is greater than zero return true
package Algorithms.Strings; public class DetectCapitol { public static boolean get(String word) { int cnt=0; for(char c:word.toCharArray()) //If the condition is true we are counter is incremented if('Z' -c >= 0) cnt++; //If the count is zero or the count and length are
//same and count is 1 and difference is greater than zero return ((cnt==0 ||cnt==word.length())||
(cnt==1 && 'Z' - word.charAt(0) >=0)); } }
No comments:
Post a Comment