原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成 一个长整数。 举例:一个ip地址为10.0.3.193 每段数字 相对应的二进制数 10 00001010 0 00000000 3 00000011 193 11000001 组合起来即为:00001010 00000000 00000011 11000001,转换为10进制数就是:167773121,即该IP地址转换后的数字就是它了。 数据范围:保证输入的是合法的 IP 序列
输入 1 输入IP地址 2 输入10进制型的IP地址
输出 1 输出转换成10进制的IP地址 2 输出转换后的IP地址
10.0.3.193 167969729
167773121 10.3.3.193
考点:字符串 · 模拟
限制 1 秒 / 32MB | 标准输入输出
推荐方向:模拟
不涉及复杂算法,把题目描述的流程原样翻译成代码逐步执行即可。
思路框架(模拟 通法 · 非本题专属)
实现要点:结构上通常是一个外层循环包住若干 if/else 分支;只要状态定义清楚,正确率很高。
复杂度:时间 O(操作次数) | 空间 O(状态数)
该范式的通法易错点
样例 1
10.0.3.193 / 167969729167773121 / 10.3.3.193解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:华为机试编程模拟题3。