一、题目描述
存在一种虚拟 IPv4 地址,由4小节组成,每节的范围为0~255,以#号间隔, 虚拟 IPv4 地址可以转换为一个32位的整数,例如: 128#0#255#255,转换为32位整数的结果为2147549183(0x8000FFFF) 1#0#0#0,转换为 32 位整数的结果为16777216(0x01000000) 现以字符串形式给出一个虚拟 IPv4 地址,限制第1小节的范围为1~128, 即每一节范围分别为(1~128)#(0~255)#(0~255)#(0~255), 要求每个 IPv4 地址只能对应到唯一的整数上。 如果是非法 IPv4,返回invalid IP
备注: 输入不能确保是合法的 IPv4 地址, 需要对非法 IPv4(空串,含有 IP 地址中不存在的字符, 非合法的#分十进制,十进制整数不在合法区间内)进行识别,返回特定错误
二、输入描述
输入一行,虚拟 IPv4 地址格式字符串。
三、输出描述
输出以上,按照要求输出整型或者特定字符。
四、测试用例
测试用例1
1、输入
128#0#255#255
2、输出
2147549183
这篇博客介绍了如何将虚拟IPv4地址转换为32位整数,遵循华为OD机试的一道题目要求。内容包括输入输出描述、解题思路及Java算法源码。博客特别强调了对非法IPv4地址的识别和处理,以及合法IPv4地址的范围限制。通过示例展示了输入“10#20#30#40”时,转换得到的整型结果为169090600。
订阅专栏 解锁全文
7899

被折叠的 条评论
为什么被折叠?



