[LeetCode] 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:
- 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”.
Otherwise, we define that this word doesn’t use capitals in a right way.
Example 1:
Input: “USA”
Output: TrueExample 2:
Input: “FlaG”
Output: False
Note: The input will be a non-empty word consisting of uppercase and lowercase latin letters.
解题思路
这道题考察的就是ASCII码的问题,大写字母对应的ASCII码为65—90,小写字母对应的ASCII码为97—122。了解了这个以后再按照题目中所给三种情况分别作出相应操作就能完成这道题。
实验代码
class Solution {
public:
bool detectCapitalUse(string word) {
int l = word.length();
if (word[0] >= 97 && word[0] <= 122) {
for (int i = 1; i < l; i++)
if (word[i] < 97 || word[i] > 122)
return false;
return true;
} else if (word[0] >= 65 && word[0] <= 90) {
if (word[1] >= 65 && word[1] <= 90) {
for (int i = 2; i < l; i++)
if (word[i] < 65 || word[i] > 90)
return false;
return true;
} else {
for (int i = 1; i < l; i++)
if (word[i] < 97 || word[i] > 122)
return false;
return true;
}
} else return false;
}
};