解题思路
本题是字符串解析 + 条件筛选 + 多维排序,可按以下步骤处理:
- 格式校验:按
. 拆成恰好 4 段;每段非空、全为数字、数值在 0∼255;除单独的 "0" 外不允许前导零(如 01 非法)。
- A 类内网判定:第一段数值必须为 10。
- 排序:对合法 IP 取 (第二段, 第三段, 第四段) 数值三元组,按字典序升序;注意 10.10.x.x 应排在 10.2.x.x 之后(数值 10>2),不能按整串字符串排序。
常见假解:
P14395.内网IP有效性校验(100分)
题目内容
企业内网运维中,需要对分配的 IP 地址段进行有效性校验:给定一个存储内网 IP 地址列表,要求筛选出符合 A 类内网网段(10.0.0.0-10.255.255.255)的 IP 地址,并按“网段层级”(即 IP 的第二个分段数值/第三分段/第四分段)升序排序。
A类内网IP规则:
- IP 格式为 xxx.xxx.xxx.xxx(4 个分段,每个分段为 0-255 的整数);
- 第一个分段必须是 10;
- 每个分段不能以 0 开头(除非分段本身是 0,如 10.0.1.1 合法,10.01.1.1 不合法)。
补充说明
给定的每组 IP 地址列表中最多有 15 个 IP 地址;输入 IP 格式不保证合法。
样例1
输入
["10.2.3.4","192.168.1.1","10.0.1.1","10.01.2.3","10.1.0.256","10.10.5.6","10.1.8.9"]
输出
["10.0.1.1","10.1.8.9","10.2.3.4","10.10.5.6"]
样例2
输入
["10.216.20.96","10.257.25.193","10.218.150.20","10.159.163.72","10.233.43.60","10.263.201.27","10.94.142.203","10.251.113.174","44.74.87.156","10.145.173.233","10.102.21.96","10.20.23.65","10.43.130.246.12","250.166.162.178","10.138.80.223"]
输出
["10.20.23.65","10.94.142.203","10.102.21.96","10.138.80.223","10.145.173.233","10.159.163.72","10.216.20.96","10.218.150.20","10.233.43.60","10.251.113.174"]
样例3
输入
["10.45.50.76","10.72.48.0","137.8.136.55","10.72.99.206","10.46.51.77","10.0.166.206","10.46.51.79","10.2.111.132.253","10.45.50.77","10.46.50.77"]
输出
["10.45.50.76","10.45.50.77","10.46.50.77","10.46.51.77","10.46.51.79","10.72.48.0","10.72.99.206"]