929-独特的电子邮件地址
生活随笔
收集整理的這篇文章主要介紹了
929-独特的电子邮件地址
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
Weekly Contest 108的第一題 獨特的電子郵件地址:
每封電子郵件都由一個本地名稱和一個域名組成,以@符號分隔。
例如,在 alice@leetcode.com中, alice 是本地名稱,而 leetcode.com 是域名。
除了小寫字母,這些電子郵件還可能包含 ',' 或 '+'。
如果在電子郵件地址的本地名稱部分中的某些字符之間添加句點('.'),則發往那里的郵件將會轉發到本地名稱中沒有點的同一地址。例如,"alice.z@leetcode.com” 和 “alicez@leetcode.com” 會轉發到同一電子郵件地址。 (請注意,此規則不適用于域名。)
如果在本地名稱中添加加號('+'),則會忽略第一個加號后面的所有內容。這允許過濾某些電子郵件,例如 m.y+name@email.com 將轉發到 my@email.com。 (同樣,此規則不適用于域名。)
可以同時使用這兩個規則。
給定電子郵件列表 emails,我們會向列表中的每個地址發送一封電子郵件。實際收到郵件的不同地址有多少?
示例:
提示
- 1 <= emails[i].length <= 100
- 1 <= emails.length <= 100
- 每封 emails[i] 都包含有且僅有一個 '@' 字符。
解題思路
本題其實十分簡單,首先要先理解清楚兩條規則的含義:
所以只要先把email地址以@為分隔符分割成2部分,分別為本地名稱和域名,然后按照前面的分析來處理本地名稱即可。
實現代碼
/*** 929. 獨特的電子郵件地址* @param emails* @return*/public int numUniqueEmails(String[] emails) {Set<String> set=new HashSet<>();for(String email:emails){//本地名稱String name=email.substring(0,email.indexOf("@"));//域名String domain=email.substring(email.indexOf("@"));//根據指定規則解析后的本地名稱,先按加號切割字符串,然后替換'.'String newName=name.substring(0,name.indexOf("+")).replaceAll(".","");//使用HashSet去重set.add(newName+domain);}return set.size();}總結
以上是生活随笔為你收集整理的929-独特的电子邮件地址的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决 macOS 下HTTP请求访问本地
- 下一篇: proxmox超融合集群用户授权