要求:
我们定义,在以下情况时,单词的大写用法是正确的:
全部字母都是大写,比如 "USA" 。
单词中所有字母都不是大写,比如 "leetcode" 。
如果单词不只含有一个字母,只有首字母大写, 比如 "Google" 。
给你一个字符串 word 。如果大写用法正确,返回 true ;否则,返回 false 。
思路:
我们利用ASCII码来判断是否位大写字母,首先判断word中每个元素的是否都是大写字母,若是则令res1=1,否则为0;再判断第一个字母是否大写,若第一个字母为大写,则判断其余字母是否为大写,若是则令res2=1,否则为0;若第一个字母为小写,则判断剩下的字母是否为小写,若是则令res2=1,否则为0;再对res1与res2进行或运算,有1则输出True,全0则输出False。
class Solution(object):
def detectCapitalUse(self, word):
"""
:type word: str
:rtype: bool
"""
res = True
res1 = 0
res2 = 0
for i in word:
if 65 <= ord(i) <= 90:
res1 = 1
else:
res1 = 0
break
if 65 <= ord(word[0]) <= 90:
word = word[1:]
for i in word:
if 97 <= ord(i) <= 122:
res2 = 1
else:
res2 = 0
break
else:
for i in word:
if 97 <= ord(i) <= 122:
res2 = 1
else:
res2 = 0
break
if res1|res2 == 1:
res = True
else:
res = False
return res