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 的长度即可。

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.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程心路

看完这个,Java IO从此不在难

Java IO 体系看起来类很多,感觉很复杂,但其实是 IO 涉及的因素太多了。在设计 IO 相关的类时,编写者也不是从同一个方面考虑的,所以会给人一种很乱的感...

1595
来自专栏阿杜的世界

Java并发-CopyOnWriteArrayList前言CopyOnWriteArrayList API例子1:插入(删除)数据的同时进行遍历例子2:不支持一边遍历一边删除结论参考资料

今天我们一起学习下java.util.concurrent并发包里的CopyOnWriteArrayList工具类。当有多个线程可能同时遍历、修改某个公共数组时...

1213
来自专栏小灰灰

Java容器篇小结之List自问自答

I. List篇 0. 什么是List 看到这个有点懵逼,一时还真不知道怎么解释,能让完全没有接触过的人都能听懂 列表,什么是列表呢? 好比你到了一个村里,看...

2198
来自专栏面朝大海春暖花开

oracle递归查询

这个子句主要是用于B树结构类型的数据递归查询,给出B树结构类型中的任意一个结点,遍历其最终父结点或者子结点。

3553
来自专栏小灰灰

JDK容器学习之TreeMap (二) : 使用说明

TreeMap 使用说明 TreeMap 的底层数据结构为红黑树,主要是根据key进行排序,相比较于HashMap的数组+链表+红黑树的数据结构而言,两者的应...

2636
来自专栏小狼的世界

Binary Search Tree 以及一道 LeetCode 题目

由于对于 Binary search tree 不理解,所以绕了点弯路,要解这道题,必须理解什么是 binary search tree。我们来看一下定义:

1052
来自专栏desperate633

LintCode x的n次幂题目分析代码

样例 Pow(2.1, 3) = 9.261 Pow(0, 1) = 0 Pow(1, 0) = 1

822
来自专栏Java学习网

Java中三种Set类型用法、性能大比拼

Java为开发者提供了大量的工具类,这给开发人员带来了很大方便,但是选择多了也有困扰,究竟用哪个类;我想选择什么,一是看自己具体需求,二是类本身的性能和用法;J...

6526
来自专栏云瓣

前端中常见数据结构小结

数据结构在开发中是一种编程思想的提炼,无关于用何种语言开发或者是哪种端开发。下列将笔者涉猎到的与前端相关的数据结构案例作如下总结:

641
来自专栏程序员互动联盟

【C++练手】C++实现单链表

前几天找实习的时候,一个面试官给我留了一个题,做一个链表demo,要求实现创建、插入、删除等操作。 链表是一种常见的数据结构,它是一种物理存储单元上非连续、非顺...

3447

扫码关注云+社区

领取腾讯云代金券