📅  最后修改于: 2023-12-03 14:57:48.127000             🧑  作者: Mango
Wipro是全球领先的信息技术、咨询和业务流程服务公司,在全球拥有超过175,000名员工,为客户提供业务。本模拟测试是Wipro公司的考核之一,根据第31章的要求编写相应的程序。
编写一个函数,用来实现一个算法。该算法将接收两个整数作为输入,分别表示两个IP地址(格式为字符串)的IPv4表示形式,函数需要计算并返回这两个IP地址之间的不同的IP数量(包括头尾两个地址)。
def ips_between(start: str, end: str) -> int:
pass
assert ips_between("10.0.0.0", "10.0.0.50") == 51
assert ips_between("10.0.0.0", "10.0.1.0") == 256
def ips_between(start: str, end: str) -> int:
# 将IPv4地址转换为整数
start_ip = sum(map(lambda x: int(x) << (8 * (3 - idx)), start.split(".")))
end_ip = sum(map(lambda x: int(x) << (8 * (3 - idx)), end.split(".")))
# 计算两个地址之间的差值
return end_ip - start_ip + 1