ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

华为OD机试2025C卷-IPv4地址转换成整数[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率

华为OD机试2025C卷-IPv4地址转换成整数[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率

文章目录

  • 前言
  • 一:题目描述
    • 题目名称
    • 题目内容
    • 输入描述
    • 输出描述
    • 示例
  • 二:解题思路
    • 解法一:暴力逐字符解析(O(N),代码冗长)
    • 解法二:split + 逐段校验(O(N),最优解)
  • 三:代码实现(最优解法)
    • C++
    • Java
    • Python3
    • C语言
    • JavaScript (Node.js)
    • Go
  • 四:复杂度分析
  • 五:易错点
    • 坑1:前导零的判断时机
    • 坑2:第1节范围是 1~128,不是 0~255
    • 坑3:累加时注意溢出
    • 坑4:split 之后空串的处理
  • 共勉

前言

IPv4 地址本质上就是一个 32 位整数——点分十进制只是给人看的"UI"。这道题让你手动实现#分隔的虚拟 IPv4 到整数的转换,同时加上一堆合法性校验。别看规则多,其实全部是模拟 + 边界判断,没有复杂算法。本文将带你逐一攻破每个校验点,给出 Java / Python3 / C++ / C语言 / JsNode / Go 六种语言的详细注释代码,保证 100% 通过率


一:题目描述

题目名称

IPv4地址转换成整数

题目内容

存在一种虚拟 IPv4 地址,由 4 小节组成,每节的范围为 0~255,以#号间隔。虚拟 IPv4 地址可以转换为一个 32 位的整数。

例如:

  • 128#0#255#255,转换为 32 位整数的结果为2147549183(0x8000FFFF)
  • 1#0#0#0,转换为 32 位整数的结果为16777216
返回列表