题意
给与一组地址,
分为两部分,
前我们称为
@
,
local name
后称为
@
。现规定只可以出现小写字母和字符
domain name
、
.
+
。
其中
可以忽略, 如 `[email protected]
.
[email protected]
和
[email protected]
都表示
+
。
local name
出现在
+
中时,将忽略第一个
[email protected]
后的所有内容,如
[email protected]
和
[email protected]`。
都表示
解法
按照题意,先取
local name
的第一个字符到第一个加号之前的内容, 然后删除其中的所有
.
, 并与
@
后的
domain name
拼接, 将结果放入 Set 集合中,最后返回 Set 的长度即可。
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.