每封电子邮件都由一个本地名称和一个域名组成,以 @ 符号分隔。

例如,在 alice@leetcode.com中, alice 是本地名称,而 leetcode.com 是域名。

除了小写字母,这些电子邮件还可能包含 ',' 或 '+'

如果在电子邮件地址的本地名称部分中的某些字符之间添加句点('.'),则发往那里的邮件将会转发到本地名称中没有点的同一地址。例如,"alice.z@leetcode.com” 和 “alicez@leetcode.com” 会转发到同一电子邮件地址。 (请注意,此规则不适用于域名。)

如果在本地名称中添加加号('+'),则会忽略第一个加号后面的所有内容。这允许过滤某些电子邮件,例如 m.y+name@email.com 将转发到 my@email.com。 (同样,此规则不适用于域名。)

可以同时使用这两个规则。

给定电子邮件列表 emails,我们会向列表中的每个地址发送一封电子邮件。实际收到邮件的不同地址有多少?

输入:["test.email+alex@leetcode.com","test.e.mail+bob.cathy@leetcode.com","testemail+david@lee.tcode.com"]
输出:
解释:实际收到邮件的是 "testemail@leetcode.com" 和 "testemail@lee.tcode.com"。
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))

解答

最新文章

  1. AngularJS过滤器filter-保留小数,小数点-$filter
  2. Expression Blend4经验分享:制作一个简单的文字按钮样式
  3. windows常用命令
  4. 指定IE浏览器渲染方式
  5. input与button按钮背景图失效不显示的解决办法
  6. 关于模拟器不能运行项目问题:Installation error: INSTALL_FAILED_INSUFFICIENT_STORAGE
  7. SQL查询四舍五入 解决方法
  8. linux free命令解读
  9. C语言之赋值
  10. Exp2后门原理与实践 20164312马孝涛
  11. 微服务与容器化Docker
  12. 实现hibernate 的validator校验
  13. 收藏一个带动画效果的ScrollViewer以及ScrollBar的模板
  14. vuejs之v-if-ajax异步请求数据遇到的坑
  15. 【Linux高级驱动】input子系统框架
  16. WPF编程,通过Double Animation动态旋转控件的一种方法。
  17. resteasy经验谈
  18. java导出txt文件
  19. 使用 MVVMLight 命令绑定
  20. 20145240《网络对抗》逆向及Bof基础实践

热门文章

  1. Python 设置字体样式
  2. html绑定点击事件传值
  3. wordpress常见问题
  4. ACDream - Dynamic Inversions II
  5. 洛谷 P1535 游荡的奶牛
  6. 【MVC框架】——什么是MVC框架
  7. POJ 1984
  8. Problem G 宝石合成 (内蒙古14年省赛)
  9. 【有奖征资源,分享有内涵】贡献你的CSDN博文和下载资源,不断更新中
  10. LeetCode总结 -- 树的遍历篇