【leecode】獨特的電子郵件地址
阿新 • • 發佈:2018-11-26
每封電子郵件都由一個本地名稱和一個域名組成,以 @ 符號分隔。
例如,在 [email protected]
中, alice
是本地名稱,而 leetcode.com
是域名。
除了小寫字母,這些電子郵件還可能包含 ','
或 '+'
。
如果在電子郵件地址的本地名稱部分中的某些字元之間新增句點('.'
),則發往那裡的郵件將會轉發到本地名稱中沒有點的同一地址。例如,"[email protected]”
和 “[email protected]”
會轉發到同一電子郵件地址。 (請注意,此規則不適用於域名。)
如果在本地名稱中新增加號('+'
),則會忽略第一個加號後面的所有內容。這允許過濾某些電子郵件,例如 [email protected]
將轉發到 [email protected]
。 (同樣,此規則不適用於域名。)
可以同時使用這兩個規則。
給定電子郵件列表 emails
,我們會向列表中的每個地址傳送一封電子郵件。實際收到郵件的不同地址有多少?
輸入:["[email protected]","[email protected]","[email protected]"] 輸出:2 解釋:實際收到郵件的是"[email protected]" 和 "[email protected]"。
class Solution: def numUniqueEmails(self, emails): """ :type emails: List[str] :rtype: int """ import re num_list = [] for email in emails: email_head = re.findall('解答(.*)@', email)[0] email_tail = re.findall('@.*', email)[0] email_body_1 = email_head.replace('.', '') email_body_2 = re.findall('(.*?)\\+', email_body_1) # print(email_body_2) if email_body_2: email_body_2 = email_body_2[0] else: email_body_2 = email_body_1 num_list.append(email_body_2+email_tail) # print(num_list) return len(set(num_list))