蒙珣的博客

活好当下,做好今天该做的事情。

0%

leetcode 检测大写字母

520. 检测大写字母

我们定义,在以下情况时,单词的大写用法是正确的:

  • 全部字母都是大写,比如 "USA"
  • 单词中所有字母都不是大写,比如 "leetcode"
  • 如果单词不只含有一个字母,只有首字母大写, 比如 "Google"

给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false

示例 1:

1
2
输入:word = "USA"
输出:true

示例 2:

1
2
输入:word = "FlaG"
输出:false

提示:

  • 1 <= word.length <= 100
  • word 由小写和大写英文字母组成

分析

如果第一个字母是大写,则后面的字母都是大写

如果第一个字母不是大写,则后面的字母都不是大写

Python写法一:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution(object):
def detectCapitalUse(self,word):
"""
:type word: str
:rtype: bool
"""

upper,lower = 0,0
for s in word:
if ord(s) >= 65 and ord(s) <= 90:
upper += 1
else:
lower += 1
if upper == 0 or lower == 0:
return True
if ord(word[0]) >= 65 and ord(word[0]) <= 90 and lower == len(word) -1:
return True
return False

Python写法二:

1
2
3
4
5
6
7
8
calss Solution(object):
def detetCapitalUse(self,word):
"""
:type word: str
:rtype: bool
"""

return word.upper()==word or word.lower()==word or word.title()==word

C写法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
bool deteCapitaUse(char * word){
// 记录大写字母、小写字母最后出现的位置
int lastUpperCharIndex = -1;
int lastLowerCharIndex = -1;
int index = 0;

wile(word[index]){
if(word[index] >= 'a' && word[index] <= 'z')
lastLowerCharIndex = index;
else
lastUpperCharIndex = index;
index++;
}

// 如果一个单词里存在小写字母,且大写字母的位置不为0,则大写用法不正确
if(lastUpperIndex >= 1 && lastLowerCharIndex >= 0){
return false;
}
return true;
}