当前位置:   article > 正文

55 题目 1116: IP判断_编程题现有一个大小为10万的ip黑名单请实现一个可以快速判断出给定ip是否在该

编程题现有一个大小为10万的ip黑名单请实现一个可以快速判断出给定ip是否在该

题目 1116: IP判断

时间限制: 1Sec 内存限制: 128MB 提交: 6196 解决: 2532

题目描述
在基于Internet的程序中,我们常常需要判断一个IP字符串的合法性。
合法的IP是这样的形式:
A.B.C.D
其中A、B、C、D均为位于[0, 255]中的整数。为了简单起见,我们规定这四个整数中不允许有前导零存在,如001这种情况。
现在,请你来完成这个判断程序吧_

输入

输入由多行组成,每行是一个字符串,输入由“End of file”结束。 字符串长度最大为30,且不含空格和不可见字符

输出

对于每一个输入,单独输出一行 如果该字符串是合法的IP,输出Y,否则,输出N

样例输入

1.2.3.4
a.b.c.d
267.43.64.12
12.34.56.bb
210.43.64.129
-123.4.5.6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

样例输出

Y
N
N
N
Y
N
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

代码

while True :
    str=input()
    if str=="End of file":
        break
    num=str.split('.')
    i=0
    while i<len(num):
        if (not num[i])or( num[i][0]=='0'and len(num[i]>1)) or( not num[i].isdecimal()):
#             print(not num[i])
#             print( num[i][0]=='0'and len(num[i]>1))
#             print(not num[i].isdecimal())
#             print(num[i])
#             print(i)
            break
        if int(num[i])<0 or int(num[i])>255:
#             print(2)
            break
        i+=1
    if i==len(num):
        print('Y')
    else:
        print('N')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/231970
推荐阅读
相关标签
  

闽ICP备14008679号