크게 3가지 경우로 나뉨.
1) 모두 대문자인 경우
2) 처음만 대문자이고 나머지는 소문자
3) 전부 소문자
- ord함수를 통해 첫번째 글자의 대, 소문자 여부 확인함.
- 대문자일 경우 두번째도 대문자인지 확인하여 1), 2)번 조건 해당 확인.
- 1)이면 upper함수를 사용하여 원본과 비교하고, 2이면 문자열 slicing을 통해 lower함수를 사용하여 원본 slicing과 비교함.
- 3)은 lower함수를 사용하여 비교함.
class Solution:
def detectCapitalUse(self, word: str) -> bool:
if ord(word[0]) in range(65, 91) :
if len(word) == 1 :
return True
else :
if ord(word[1]) in range(65, 91) :
tmp = word.upper()
if tmp == word :
return True
return False
else :
tmp = word[1:].lower()
if tmp == word[1:] :
return True
return False
else :
if word.lower() == word :
return True
return False