Leetcode 题目描述:
给定一个单词,你需要判断单词的大写使用是否正确。
我们定义,在以下情况时,单词的大写用法是正确的:
全部字母都是大写,比如"USA"。
单词中所有字母都不是大写,比如"leetcode"。
如果单词不只含有一个字母,只有首字母大写, 比如 “Google”。
否则,我们定义这个单词没有正确使用大写字母。
示例 1:
输入: “USA”
输出: True
示例 2:
输入: “FlaG”
输出: False
(Python)解法一:
自己的:
def detectCapitalUse(word):
original = list(word)
capital = list(word.upper())
equal = []
for i in range(len(original)):
if original[i] == capital[i]:
equal.append(1)
else:
equal.append(0)
if equal.count(1) == len(equal):
return True
elif equal.count(1) == 0:
return True
elif equal.count(1)==1 and equal[0]==1:
return True
else:
return False
(Python)解法二:
别人的:
def detectCapitalUse(word):
flag = False
if all([w.isupper() for w in word]):
return True
if all([w.islower() for w in word]):
return True
for i,w in enumerate(word):
if w.isupper():
if i == 0:
flag = True
else:
if flag === True:
flag = False
else:
if i == 0:
return False
else:
continue
return False