iT邦幫忙

2021 iThome 鐵人賽

DAY 27
1
自我挑戰組

每日LeetCode解題紀錄系列 第 27

LeetCode解題 Day27

929. Unique Email Addresses

https://leetcode.com/problems/unique-email-addresses/


題目解釋

每個email的都包含一個local namedomain 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收到信件

example

https://i.imgur.com/1XdUi9s.png


解法

這題按照題目敘述寫出程式碼就好

一開始先由@的前後區分local namedomain 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)

上一篇
LeetCode解題 Day26
下一篇
LeetCode解題 Day28
系列文
每日LeetCode解題紀錄30

尚未有邦友留言

立即登入留言