[LeetCode] 929. Unique Email Addresses 独特的邮件地址
Every email consists of a local name and a domain name, separated by the @ sign.
For example, in alice@leetcode.com
, alice
is the local name, and leetcode.com
is the domain name.
Besides lowercase letters, these emails may contain '.'
s or '+'
s.
If you add periods ('.'
) between some characters in the local name part of an email address, mail sent there will be forwarded to the same address without dots in the local name. For example, "alice.z@leetcode.com"
and "alicez@leetcode.com"
forward to the same email address. (Note that this rule does not apply for domain names.)
If you add a plus ('+'
) in the local name, everything after the first plus sign will be ignored. This allows certain emails to be filtered, for example m.y+name@email.com
will be forwarded to my@email.com
. (Again, this rule does not apply for domain names.)
It is possible to use both of these rules at the same time.
Given a list of emails
, we send one email to each address in the list. How many different addresses actually receive mails?
Example 1:
Input: ["test.email+alex@leetcode.com","test.e.mail+bob.cathy@leetcode.com","testemail+david@lee.tcode.com"]
Output: 2
Explanation: "testemail@leetcode.com" and "testemail@lee.tcode.com" actually receive mails
Note:
1 <= emails[i].length <= 100
1 <= emails.length <= 100
- Each
emails[i]
contains exactly one'@'
character. - All local and domain names are non-empty.
- Local names do not start with a
'+'
character.
博主正在刷题的时候,突然朋友圈刷出了科比坠机的消息,惊的下巴都掉了,忙看了下日期,不是四月一啊,于是疯狂的 google,中文搜不到任何相关的消息,于是搜英文 Kobe Bryant,结果真的有坠机消息,而且是几分钟前刚发布的,渐渐的很多微信群里都开始讨论了,连 wiki 上都更新了,随着越来越多的媒体确认这一个消息,心情越来越沉重了。算起来了,在博主最早关注 NBA 的时候,科比就当红球星,二十年的光辉岁月,五座总冠军戒指,甚至退役后还获得过奥斯卡小金人,年仅四十一岁,本来是要续写另一段传奇人生,就这么的走了?人生无常啊,你永远不知道意外和明天哪一个先到来,能平平安安的活着就已经是万幸了。RIP,一路走好,科比,愿天堂没有直升机。下面带着沉重的心情来做题吧,这道题是关于邮件的,邮件名里可能会有两个特殊符号,点和加号,对于点采取直接忽略的做法,对于加号则是忽略其后面所有的东西,现在问我们有多少个不同的邮箱。没有太多的技巧,就直接遍历一下所有的字符,遇到点直接跳过,遇到 '+' 或者 '@' 直接 break 掉。注意这里其实有个坑,就是域名中也可能有点,而这个点是不能忽略的,所以要把 '@' 及其后面的域名都提取出来,连到之前处理好的账号后面,一起放到一个 HashSet 中,利用其可以去重复的特性,最终剩余的个数即为所求,参见代码如下:
class Solution {
public:
int numUniqueEmails(vector<string>& emails) {
unordered_set<string> st;
for (string email : emails) {
string name;
for (char c : email) {
if (c == '.') continue;
if (c == '+' || c == '@') break;
name.push_back(c);
}
name += email.substr(email.find('@'));
st.insert(name);
}
return st.size();
}
};
Github 同步地址:
https://github.com/grandyang/leetcode/issues/929
参考资料:
https://leetcode.com/problems/unique-email-addresses/
https://leetcode.com/problems/unique-email-addresses/discuss/317207/C%2B%2B-Concise-Solution
https://leetcode.com/problems/unique-email-addresses/discuss/186798/Java-7-liner-with-comment.
[LeetCode All in One 题目讲解汇总(持续更新中...)](https://www.cnblogs.com/grandyang/p/4606334.html)
[LeetCode] 929. Unique Email Addresses 独特的邮件地址的更多相关文章
- LeetCode 929. Unique Email Addresses (独特的电子邮件地址)
题目标签:String 题目说明 有两个规则针对于 local name. 所以先把local name 和 domain name 分开. 两个规则是: rule 1:'.' 会被去除. (利用re ...
- 【LeetCode】Unique Email Addresses(独特的电子邮件地址)
这道题是LeetCode里的第929道题. 题目要求: 每封电子邮件都由一个本地名称和一个域名组成,以 @ 符号分隔. 例如,在 alice@leetcode.com中, alice 是本地名称,而 ...
- [leetcode] 929. Unique Email Addresses (easy)
统计有几种邮箱地址. 邮箱名类型:local@domain 规则:1. local中出现"."的,忽略. a.bc=abc 2. local中出现"+"的,+以 ...
- LeetCode 929 Unique Email Addresses 解题报告
题目要求 Every email consists of a local name and a domain name, separated by the @ sign. For example, i ...
- [LeetCode] 929. Unique Email Addresses 唯一的电邮地址
Every email consists of a local name and a domain name, separated by the @ sign. For example, in ali ...
- LeetCode 929.Unique Email Addresses
Description Every email consists of a local name and a domain name, separated by the @ sign. For exa ...
- Leetcode929.Unique Email Addresses独特的电子邮件地址
每封电子邮件都由一个本地名称和一个域名组成,以 @ 符号分隔. 例如,在 alice@leetcode.com中, alice 是本地名称,而 leetcode.com 是域名. 除了小写字母,这些电 ...
- 929. Unique Email Addresses
929. Unique Email Addresses Easy 22766FavoriteShare Every email consists of a local name and a domai ...
- 【Leetcode_easy】929. Unique Email Addresses
problem 929. Unique Email Addresses solution: class Solution { public: int numUniqueEmails(vector< ...
随机推荐
- JMeter配置JDBC测试SQL Server/MySQL/ORACLE
一.配置SQL Server 1.下载sql驱动,将sqljdbc4.jar放到JMeter安装目录/lib下. 2.启动JMeter,右键添加->配置文件->JDBC Connectio ...
- HTML相关知识点
标签: 块元素:可以设置宽高,div, 行内元素:不可以设置宽高,span,image, display:inline;//转换成行内元素 display:block;//转换成块元素 display ...
- java并发初探CyclicBarrier
java并发初探CyclicBarrier CyclicBarrier的作用 CyclicBarrier,"循环屏障"的作用就是一系列的线程等待直至达到屏障的"瓶颈点&q ...
- Linux和云供应商Red Hat被IBM以34亿美元的价格收购
导读 今天的主题包括IBM以340亿美元收购Red Hat,人性化是使人工智能成功的关键.两家公司于10月28日宣布,IBM正以340亿美元的价格收购Linux和云技术供应商Red Hat,以期改变云 ...
- 解决css中display:inline-block产生的空隙问题
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- logj4.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration PU ...
- Python 关于super在多继承中的解析
一.单继承情况: 解析: 创建B类的实例化对象时,执行初始化函数: 打印输出Enter B,当遇到super()调用父类初始化函数(此时是调用B类的父类A的__init__函数),输出Enter A. ...
- bzoj 4475: [Jsoi2015]子集选取
233,扒题解的时候偷瞄到这个题的题解了,,GG 暴力发现是2^(nm),然后就是sb题了 #include <bits/stdc++.h> #define LL long long us ...
- ExpandableListActivity的基本使用方法 ,SimpleExpandableListAdapter的基本使用方法
activity_main.xml: <ExpandableListView android:id="@id/android:list" android:layout_wid ...
- MAC电脑如何播放.SWF文件
很简单,不需要专门的播放器,只需要将.swf文件直接拖拽到浏览器页面就可以播放了. 亲测safari , 谷歌chrome浏览器,火狐浏览器 ,都是可以的 下面是图示 step1 电脑上找到swf文件 ...