반응형
* leetcode 819. Most Common Word
Q. 금지된 단어를 제외한 가장 흔하게 등장하는 단어를 출력하라. 대소문자 구분을 하지 않으며, 구두점(마침표, 쉽표 등) 또한 무시한다.
# 입력
paragraph = 'Bob hit a ball, the hit BALL flew far after it was hit.'
banned = ["hit"]
# 출력
"ball"
풀이 1. 리스트 컴프리헨션, Counter 객체 사용
def mostCommonWord(self, paragraph: str, banned: List[str]) -> str:
# 정규식을 사용한 전처리
# \w는 단어 문자(word character를 뜻하며, ^는 not을 의미하며 따라서 paragraph의 모든
# 단어 문자가 아닌 문자를 공백으로 치환한다.
words = [word for word in re.sub(r'[^\w]', ' ', paragraph).lower().split()
if word not in banned]
# 리스트의 모든 값들의 등장 수를 (값, 등장 수)로 반환하는 Counter를 사용
# most_common(1)의 값은 [('ball', 2)]가 됨으로 [0][0]을 추출하여 리턴.
counts = collections.Counter(words)
return counts.most_common(1)[0][0]
반응형
'프로그래밍 > [ Python ]' 카테고리의 다른 글
[문자열 조작] 가장 긴 팰린드롬 부분 문자열 (0) | 2021.01.11 |
---|---|
[문자열 조작] 그룹 애너그램 (0) | 2021.01.11 |
[문자열 조작] 로그 파일 재정렬 (0) | 2021.01.11 |
[문자열 조작] 문자열 뒤집기 (0) | 2021.01.11 |
[문자열 조작] 유효한 팰린드롬 (0) | 2021.01.11 |