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 ↩︎
目录
相关文章
|
6月前
|
SQL
查找重复的电子邮箱
查找重复的电子邮箱
62 0
|
Shell 开发工具 数据安全/隐私保护
写一个批量创建10个用户的脚本users.sh。创建的用户名由字母和数字组成。设置用户的初始密码跟用户名相同,每创建一个用户就显示用户的ID信息,再显示用户名、密码信息。
写一个批量创建10个用户的脚本users.sh。创建的用户名由字母和数字组成。设置用户的初始密码跟用户名相同,每创建一个用户就显示用户的ID信息,再显示用户名、密码信息。
116 0
|
缓存 NoSQL Java
用户重复登录|学习笔记
快速学习用户重复登录
230 0
用户重复登录|学习笔记
|
JSON 数据安全/隐私保护 数据格式
查找用户功能的实现 | 学习笔记
快速学习查找用户功能的实现
|
数据库
LeetCode(数据库)- 查找拥有有效邮箱的用户
LeetCode(数据库)- 查找拥有有效邮箱的用户
130 0
|
数据安全/隐私保护
需求: 需要完成如下基本功能: 1:添加用户 (注册) 2:删除用户 (注销用户) 3:修改用户 4:查询单个用户 5:查询所有用户 6:退出系统 程序运行后,
需求: 需要完成如下基本功能: 1:添加用户 (注册) 2:删除用户 (注销用户) 3:修改用户 4:查询单个用户 5:查询所有用户 6:退出系统 程序运行后,除
|
数据安全/隐私保护 索引
登陆操作:用户名和密码及进行录入判断 当用户名是li 密码是123456的时候显示登陆成功 。如果密码和用户名录入错需要循环录入。 并且录入错误次数超过三次提示:账号已锁。并且停掉循环
登陆操作:用户名和密码及进行录入判断 当用户名是li 密码是123456的时候显示登陆成功 。如果密码和用户名录入错需要循环录入。 并且录入错误次数超过三次提示:账号已锁。并且停掉循环
|
数据安全/隐私保护
9、获取用户的详细信息接口,如果用户没有登录,我们提示用户登录
controller: //获取用户详细信息接口,当用户没有登录,我们强制让其登录 @RequestMapping(value = "get_information.
1142 0
|
数据安全/隐私保护