本文最后更新于367 天前,其中的信息可能已经过时,如有错误请发送邮件到2446865563@qq.com
1.题目基本信息
1.1.题目描述
表:logs
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| log_id | int |
| ip | varchar |
| status_code | int |
+-------------+---------+
log_id 是这张表的唯一主键。
每一行包含服务器访问日志信息,包括 IP 地址和 HTTP 状态码。
编写一个解决方案来查找 无效的 IP 地址。一个 IPv4 地址如果满足以下任何条件之一,则无效:
-
任何 8 位字节中包含大于 255 的数字
-
任何 8 位字节中含有 前导零(如 01.02.03.04)
-
少于或多于 4 个 8 位字节
返回结果表分别以 invalid_count,ip 降序 排序。
1.2.题目地址
https://leetcode.cn/problems/find-invalid-ip-addresses/description/
2.解题方法
2.1.解题思路
正则匹配
3.解题代码
sql代码
# Write your MySQL query statement below
# ip的单元素匹配 (25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])
SELECT
ip,
COUNT(*) AS invalid_count
FROM logs
WHERE ip NOT REGEXP '^((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])\\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]|[0-9])$'
GROUP BY ip
ORDER BY invalid_count DESC, ip DESC
4.执行结果










