1517. 查找拥有有效邮箱的用户

简介: 1517. 查找拥有有效邮箱的用户

说在前面

🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。

题目描述

表: Users

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| user_id       | int     |
| name          | varchar |
| mail          | varchar |
+---------------+---------+
user_id 是该表的主键(具有唯一值的列)。
该表包含了网站已注册用户的信息。有一些电子邮件是无效的。

编写一个解决方案,以查找具有有效电子邮件的用户。

一个有效的电子邮件具有前缀名称和域,其中:

  1. 前缀 名称是一个字符串,可以包含字母(大写或小写),数字,下划线 '_' ,点 '.' 和/或破折号 '-' 。前缀名称 必须 以字母开头。
  2. '@leetcode.com'

以任何顺序返回结果表。

结果的格式如以下示例所示:

示例 1:

输入:
Users 表:
+---------+-----------+-------------------------+
| user_id | name      | mail                    |
+---------+-----------+-------------------------+
| 1       | Winston   | winston@leetcode.com    |
| 2       | Jonathan  | jonathanisgreat         |
| 3       | Annabelle | bella-@leetcode.com     |
| 4       | Sally     | sally.come@leetcode.com |
| 5       | Marwan    | quarz#2020@leetcode.com |
| 6       | David     | david69@gmail.com       |
| 7       | Shapiro   | .shapo@leetcode.com     |
+---------+-----------+-------------------------+
输出:
+---------+-----------+-------------------------+
| user_id | name      | mail                    |
+---------+-----------+-------------------------+
| 1       | Winston   | winston@leetcode.com    |
| 3       | Annabelle | bella-@leetcode.com     |
| 4       | Sally     | sally.come@leetcode.com |
+---------+-----------+-------------------------+
解释:
用户 2 的电子邮件没有域。 
用户 5 的电子邮件带有不允许的 '#' 符号。
用户 6 的电子邮件没有 leetcode 域。 
用户 7 的电子邮件以点开头。

解题思路

具体实现方式是,使用SELECT语句选择user_id、name和mail字段,FROM子句指定表名为Users。然后,在WHERE子句中使用REGEXP运算符,通过正则表达式’1[a-zA-Z0-9_.-]*@leetcode.com$'对mail字段进行匹配筛选。

正则表达式解释:

  • ^ 表示匹配字符串的开始位置。
  • [a-zA-Z] 表示匹配一个字母。
  • [a-zA-Z0-9_.-]* 表示匹配0个或多个字母、数字、下划线、点和短横线。
  • @ 表示匹配字符’@'。
  • leetcode.com 表示匹配字符串"leetcode.com"。
  • $ 表示匹配字符串的结束位置。

AC代码

SELECT user_id, name, mail
FROM Users
WHERE mail REGEXP '^[a-zA-Z][a-zA-Z0-9_.-]*\\@leetcode\\.com$';

公众号

关注公众号『前端也能这么有趣』,获取更多有趣内容。

说在后面

🎉 这里是 JYeontu,现在是一名前端工程师,有空会刷刷算法题,平时喜欢打羽毛球 🏸 ,平时也喜欢写些东西,既为自己记录 📋,也希望可以对大家有那么一丢丢的帮助,写的不好望多多谅解 🙇,写错的地方望指出,定会认真改进 😊,偶尔也会在自己的公众号『前端也能这么有趣』发一些比较有趣的文章,有兴趣的也可以关注下。在此谢谢大家的支持,我们下文再见 🙌。


  1. a-zA-Z ↩︎
目录
相关文章
|
8天前
|
SQL
查找重复的电子邮箱
查找重复的电子邮箱
23 0
|
8月前
|
C++
25.【 C/C++ QQ登入系统 (人生中第一个趋形系统)】
25.【 C/C++ QQ登入系统 (人生中第一个趋形系统)】
33 0
|
网络安全 数据安全/隐私保护
|
缓存 NoSQL Java
用户重复登录|学习笔记
快速学习用户重复登录
194 0
用户重复登录|学习笔记
|
数据库
LeetCode(数据库)- 查找拥有有效邮箱的用户
LeetCode(数据库)- 查找拥有有效邮箱的用户
113 0
小技巧 - 谷歌注册账号提示此电话号码无法用于进行验证
小技巧 - 谷歌注册账号提示此电话号码无法用于进行验证
2586 0
小技巧 - 谷歌注册账号提示此电话号码无法用于进行验证
|
数据安全/隐私保护
需求: 需要完成如下基本功能: 1:添加用户 (注册) 2:删除用户 (注销用户) 3:修改用户 4:查询单个用户 5:查询所有用户 6:退出系统 程序运行后,
需求: 需要完成如下基本功能: 1:添加用户 (注册) 2:删除用户 (注销用户) 3:修改用户 4:查询单个用户 5:查询所有用户 6:退出系统 程序运行后,除
推荐一个临时邮箱生成网站,专门用于各种注册用途
推荐一个临时邮箱生成网站,专门用于各种注册用途
565 0
|
Java Spring
基于LDAP的通讯录(阿里云邮)搜索查询的实现
为了让用户用好新零售风险防控中心,尽可能给用户提供方便…… 说吧,要什么? 就是阿里云邮箱的那个通讯录,能够查询邮件组的接口。 ![image.png](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/6ecf288ace488ed6642fe0578e4b2301.png) 又是烦阿里云邮的同学,你要的目前没有,HSF
1404 0