520. Detect Capital

Posted andywu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了520. Detect Capital相关的知识,希望对你有一定的参考价值。

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.

题目含义:给定一个词,你需要判断它中的资本的使用是否正确。当以下情况之一存在时,我们将单词中资本的使用定义为正确:这个单词中的所有字母都是大写,如“USA”。这个单词中的所有字母都不是大写,例如“leetcode”。只有此字中的第一个字母是大写,如果它有多个字母,如“Google”。否则,我们定义这个词不以正确的方式使用大写。

思路:找出所有大写字母的个数captialCount,与字符串长度做比较,都是小写字母、都是大写字母、只有首字母是大写字母的,都返回true。判断公式为:

captialCount == 0 || captialCount == word.length() || (captialCount == 1 && (‘Z‘ - word.charAt(0) >= 0))

 

字母    ASCII码      十进制数
0         00110000      48
9           00111001        57
A          01000001         65
Z          01011010         90
a         01100001         97
z          01111010         122
DEL (delete)   01111111   127

 

1     public boolean detectCapitalUse(String word) {
2         char[] words = word.toCharArray();
3         int captialCount = 0;
4         for (char letter : words) {
5             if (‘Z‘ - letter >= 0) captialCount++;
6         }
7 return captialCount == 0 || captialCount == word.length() || (captialCount == 1 && (‘Z‘ - word.charAt(0) >= 0)); 8 }

 


以上是关于520. Detect Capital的主要内容,如果未能解决你的问题,请参考以下文章

520. Detect Capital

LeetCode 520. Detect Capital

Leetcode 520. Detect Capital

LeetCode - 520. Detect Capital

520. Detect Capital

leetcode-520-Detect Capital