200字
IPv4地址转换成整数
2025-12-07
2025-12-07

存在一种虚拟IPv4地址,由4小节组成,每节的范围为0~128,以#号间隔,格式如下:

(1~128)#(0~255)#(0~255)#(0~255)

请利用这个特性把虚拟IPv4地址转换为一个32位的整数,IPv4地址以字符串形式给出,要求每个IPvV4地址只能对应到唯一的整数上。

如果是非法IPv4,返回invalid IP。

输入描述

输入一行,虚拟IPv4地址格式字符串

输出描述

输出一行,按照要求输出整型或者特定字符

示例1 输入输出示例仅供调试,后台判题数据一般不包含示例

输入

100#101#1#5

输出

1684340997

示例2 输入输出示例仅供调试,后台判题数据一般不包含示例

输入

1#2#3

输出

invalid IP

import sys


def mian():
    ipv4_data = list(map(int,sys.stdin.readline().split('#')))
    if len(ipv4_data) !=4:
        print("invalid IP")
        return
    if not (1<= ipv4_data[0] <=128):
        print("invalid IP")
        return
    for i in range(1,4):
        if not (0 <= ipv4_data[i] <= 255):
            print("invalid IP")
            return
    result = (ipv4_data[0] << 24) | (ipv4_data[1] << 16) | (ipv4_data[2] << 8) | ipv4_data[3]
    print(result)
if __name__ == '__main__':
    mian()

IPv4地址转换成整数
作者
Shisuiyi
发表于
2025-12-07
License
CC BY-NC-SA 4.0

评论