https://leetcode.com/problems/unique-email-addresses/
每個email的都包含一個local name
和domain name
,兩者由@
符號分隔。
"alice@leetcode.com"
,"alice"
是local name
而"leetcode.com"
是domain name
email中的domain name
常常會看到'.'
符號;若'.'
符號出現在local name
,email寄到的local name
仍會忽略掉'.'
符號。
"alice.z@leetcode.com"
和"alicez@leetcode.com"
,都是寄送到同個email若'+'
符號出現在local name
的話,local name
第一個加號後面的任何東西都會省略掉。
"m.y+name@email.com"
和"my@email.com"
,都是寄送到同個email現在有個emails
陣列儲存一堆準備發信的email地址,請回傳題目發送給emails
陣列的所有地址中,最後有幾個email收到信件
這題按照題目敘述寫出程式碼就好
一開始先由@
的前後區分local name
和domain name
再來就是看哪些local name
是相同的,所以先保留local name
中'+'
符號前的地址,再忽略掉剩餘的地址中所有'.'
符號
最後留下的local name
+ @
+ domain name
就是目的地了
class Solution:
def numUniqueEmails(self, emails: List[str]) -> int:
ans = set()
for email in emails:
email = email.split('@')
local = ''.join((email[0].split('+')[0]).split('.'))
domain = email[1]
ans.add(local + '@' + domain)
return len(ans)