您的位置:首页 > 编程语言 > Python开发

输入两个ip区间段,判断是否有交集【2018华为软件岗位笔试题目】

2017-09-20 13:02 483 查看

问题:输入两个ip区间段,判断是否有交集

Python3版解决方案

ip1 = input()
ip2 = input()
ip3 = input()
ip4 = input()
def transIp2Num(ip):
_1,_2,_3,_4 = ip.split('.')
num = int(_4)*1 + int(_3)*256 + int(_2) * 256 * 256 + int(_1) * 256 *256 *256
return num
ip1 = transIp2Num(ip1)
ip2 = transIp2Num(ip2)
ip3 = transIp2Num(ip3)
ip4 = transIp2Num(ip4)
if ip3>ip2 | ip4<ip1 :
print('没有交集')
else:
print('有交集')


解释一下

一个ip地址其实可以看作是一个四位的数字,只不过是256进制的而已

例如:百度的IP 可以对应一个数字

61.135.169.121->1032300921

因此一个ip段就是一个区间了,接下来的问题就是比较两个区间的交集问题了

so easy 了

题外话

其实下面的3个网址是一样的,你可以点击试试。

http://1032300921

http://61.135.169.121/

http://www.baidu.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 软件 华为