LeetCode 929 Unique Email Addresses

题意

给与一组 email 地址,email 分为两部分, @ 前我们称为 local name, @ 后称为 domain name。现规定只可以出现小写字母和字符 .+
其中 . 可以忽略, 如 `alice.z@leetcode.comal.icez@leetcode.com都表示alicez@leetcode.com+出现在local name中时,将忽略第一个+后的所有内容,如m.y+name@email.comm.y@email.com都表示my@email.com`。

解法

按照题意,先取 local name 的第一个字符到第一个加号之前的内容, 然后删除其中的所有 ., 并与 @ 后的 domain name 拼接, 将结果放入 Set 集合中,最后返回 Set 的长度即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution {
public int numUniqueEmails(String[] emails) {
Set<String> set = new HashSet<>();

for (String email : emails) {
int start = email.indexOf("+");
int end = email.indexOf("@");
String localName = email.substring(0, start);
localName = localName.replace(".", "");
String domainName = email.substring(end, email.length());
set.add(localName + domainName);
}
return set.size();
}
}

Runtime: 35 ms, faster than 63.93% of Java online submissions for Unique Email Addresses.

  • 本文作者: 赵俊
  • 本文链接: http://www.zhaojun.im/leetcode-929/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!