JustDoEat
[Python/String-Manipulation] Check Pangram 본문
Pangram이란?
팡그램(pangram)"은 특정 알파벳이나 문자를 모두 포함하는 문장이나 문단을 나타냅니다. 주로 모든 알파벳을 최소한 한 번 사용하여 문장을 구성하는 경우를 의미합니다.
즉 현 문제에서는 a~z까지 알파벳이 문장에 모두 들어가야함.
문제
주어진 문자열이 Pangram인지 체크하세요
입출력 예시1:
Input: str = “John quickly extemporized five tow bags.”
Output: True
코드.
str = "qwertyuiopasdfghjklzxcvbnm"
#pangram = [''.join(char.lower() for char in str if char.isalnum())]
#.join()을쓰면 문자열을 합쳐서 리스트에 넣어짐으로 생략
#['johnquicklyextemporizedfivetowbags']
pangram = [char.lower() for char in str if char.isalnum()]
# 문자열에 영어, 숫자를 제외한 나머지를 없애줌.
# 대문자를 모두 소문자로 바꾼후 리스트에 한글자씩 넣어줌.
str_alpha=set(pangram) # 중복을 없애기위해 집합으로 변환, 어차피 A~Z 만 있으면 되므로 중복은 허용X
alpha = set( chr(item)for item in range(ord('a'),ord('z')+1) ) #a~z까지 값을 집합에 할당
result = str_alpha & alpha #교집합을해서 a~z가 나오면 pangram임.
result2 = result - str_alpha
result3 = str_alpha - result
difference = not result2 and not result3
if result == alpha and difference:
print(difference)
else:
print("false")