문제의 조건에 따라 완성한 list를 반환한다.
문제 조건
이메일은 @를 기준으로 다음과 같이 구성되어 있다. (local name@domain names)
local name 부분에서 '.'이 나올 경우 '.'이 없는 것처럼 취급한다.
local name 부분에서 '+'가 나올 경우 '+' 이하의 local name 부분은 없는 것처럼 취급한다.
문제 풀이
여러 이메일 주소가 담긴 List가 주어지고, 이 이메일들을 순회하면서 조건에 따라서 local name 부분을 수정한다. 이때 정정된 이메일 주소는 set()에 담아 중복을 제거한다. List의 모든 이메일 주소를 수정하였을 때 set()에 담긴 이메일 주소의 수를 반환하면 된다.
파이썬 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
class Solution:
def numUniqueEmails(self, emails: List[str]) -> int:
"""
Rumtime : faster than 30.48% of Python3
Memory Usage : less than 5.79% of Python3
"""
email_list = set()
for email in emails:
email = email.split('@')
local = ''
for e in email[0]:
if e == '.':
continue
elif e == '+':
break
else:
local += e
local += '@'
local += email[1]
email_list.add(local)
return len(email_list)
|
cs |
'온라인 코딩 테스트 문제 풀이 > LeetCode 문제 풀이' 카테고리의 다른 글
Python으로 푸는 LeetCode. 942. DI String Match (Easy) (0) | 2019.05.04 |
---|---|
Python으로 푸는 LeetCode 804. Unique Morse Code Words (Easy) (0) | 2019.05.03 |
Python으로 LeetCode 994. Rotting Oranges (Easy) (0) | 2019.04.29 |
Python으로 푸는 LeetCode 268. Missing Number (Easy) (0) | 2019.04.26 |