首页 > 试题广场 >

合法IP

[编程题]合法IP
  • 热度指数:278222 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

IPV4地址可以用一个32位无符号整数来表示,一般用点分方式来显示,点将IP地址分成4个部分,每个部分为8位,表示成一个无符号整数(因此正号不需要出现),如10.137.17.1,是我们非常熟悉的IP地址,一个IP地址串中没有空格出现(因为要表示成一个32数字)。

现在需要你用程序来判断IP是否合法。

数据范围:数据组数:
进阶:时间复杂度:,空间复杂度:



输入描述:

输入一个ip地址,保证不包含空格



输出描述:

返回判断的结果YES or NO

示例1

输入

255.255.255.1000

输出

NO
头像 寒武子星
发表于 2021-12-03 19:11:51
这道题描述不是很清楚,示例中的情况只属于提交问题中的一小部分,提交问题中会有‘+’、‘03’或者空等情况。查看解题中的答案发现很多已经过时,提交无法通过。废了些时间做出来了,和大家分享一下。 while True: try: s = input().split('.') 展开全文
头像 小饭快到碗里来
发表于 2021-12-09 04:04:21
虽然测试案例里都是+1.255.255.255用Integer.ParseInt可以跑 如果不判断每个字段的每个字符是不是数字,就会导致[][]1.255.255.255用Integer.ParseInt跑不了 import java.util.*; public cl 展开全文
头像 牛客502804928号
发表于 2022-04-07 16:15:26
看很多题解不适用了,更新一下最新题解 ip = input().split(".") if len(ip) != 4: # 排除长度不为4部分的 print("NO") else: for i in ip: if ( not i.isdi 展开全文
头像 摸鱼学大师
发表于 2021-11-01 10:42:24
题目的主要信息: 输入xx.xx.xx.xx形式的IPv4地址,判断其是否合法 方法一:字符串流输入输出 具体做法: 可以用字符串流输入输出将字符串转换成成数字和字符点,然后判断每个数字是否在0-255之间即可。 #include<iostream> #include<str 展开全文
头像 姐姐的遮阳伞
发表于 2022-04-17 19:09:34
这种题关键就是要细心,把所有可能出现的错误,通过 if-else 语句排除掉 初始 字符串分割之后,一定要分成 4 部分,否则直接返回 分割后的字符串不能为 空串,否则直接返回 分割后的字符串不能包含 除数字以外 的任何字符,否则直接返回 在 IPv4 中,对于每一部分的数字,都不能 大于255 展开全文
头像 生白
发表于 2021-02-19 15:47:03
刚开始连着计算判断的时候超时了,看了其他人的题解,直接按照格式化输入就可以了,觉得这个思路还是很不错的 #include<stdio.h> int ip[4]; int main(){ while(scanf("%d.%d.%d.%d",&ip[0],&ip[1] 展开全文
头像 细水长流201904152026511
发表于 2021-10-05 11:49:02
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; /** * @author eagle2020 * @d 展开全文
头像 歪比巴卜歪比巴卜
发表于 2022-07-21 00:05:11
用一下正则表达式过滤一下非数字字符、空串、和“.”不是4个的情况,再判断是不是其中的数是不是0-255。 注意过滤“01”这种0在开头的不合法情况。 做字符串的题还是要会点正则表达式的,很多题做起来会方便很多。 public static void ma 展开全文
头像 CroMarmot
发表于 2021-12-08 17:40:28
题意 判断给定ip是否合法 方法 内置库 对于这种大量场景地方都会用到的函数,如果是在面向用户生产代码中,尽可能的不要自己实现,而是使用很多人用过有保障的库函数 inet_pton这个函数在成功时返回1,失败时返回0,所以我们直接调用它即可 代码 #include<bits/stdc++.h& 展开全文
头像 牛客442481903号
发表于 2021-12-24 15:57:22
因为题目中有'+8' '01'这种字符,所以不能简单的用int()转换。 创建了一个0-255的str列表 输入值以'.'分割成list,先判断分割的list长度是否是4,如果不是直接输出NO 然后判断list中所有元素的是否在str列表中 lista = [str(i) for i in ran 展开全文