IP地址分类识别

2026 华为OD机试真题 5.17华为OD上机新系统考试真题 100 分题型

点击查看华为 OD 机试真题完整目录:2026最新华为OD机试新系统卷 + 双机位C卷 真题题库目录|全覆盖题库 + 逐点算法考点详解

题目描述

  • R类(保留地址):0.0.0.0~ 0.255.255.255
  • A类:1.0.0.0~ 126.255.255.255
  • L类(环回地址):127.0.0.0~ 127.255.255.255
  • B类:128.0.0.0~ 191.255.255.255
  • C类:192.0.0.0~ 223.255.255.255
  • D类(组播地址):224.0.0.0~ 239.255.255.255
  • E类(保留地址):240.0.0.0~ 255.255.255.255

实现一个函数,输入一个IPv4地址,判断是哪一类IP地址,输出对应的类型:"A"、"B"、"C"...;如果输入的IP地址不符合规范,则输出"F"。

IP地址合法性判定规则:

  1. IP地址由4个整数组成,取值范围为0~ 255

  2. "."作为分割符分隔4个数字

补充说明

题目中出现的数字,除了数字"00"以外,不存在其他数字存在前导00的情况,比如不会存在"0505"、"010010"等。

示例1

输入

126.255.255.255

输出

A

说明

A类:1.0.0.0 ~ 126.255.255.255

示例2

输入

191.255.255.255

输出

B

说明

B类:128.0.0.0 ~ 191.255.255.255

示例3

输入

223.255.255.255

输出

C

说明

C类:192.0.0.0 ~ 223.255.255.255

示例4

输入

239.255.255.255

输出

D

说明

D类:224.0.0.0 ~ 239.255.255.255(组播地址)

示例5

输入

255.255.255.255

输出

E

说明

E类:240.0.0.0 ~ 255.255.255.255(保留地址)

示例6

输入

a.0.0.0

输出

F

说明

a非数字

示例7

输入

0.0.0.1

输出

R

说明

保留地址:0.0.0.0 ~ 0.255.255.255

示例8

输入

127.0.0.1

输出

L

说明

环回地址:127.0.0.0 ~ 127.255.255.255

解题思路

注意:

为 224 到 239 时,虽然属于 D 类地址,但样例 4 明确要求输出 "F",因此本题代码输出 "F"。按照用例来

!!!

本题的核心是对 IPv4 地址进行合法性校验并根据首字节进行分类。

  1. 合法性校验

    • 分段检查:IP 地址必须由 . 分割成恰好 4 个部分。
    • 字符检查:每个部分不能为空,且必须全部由数字字符组成(避免包含字母或特殊符号)。
    • 前导零检查:除了数字 本身,多位数字不允许以 开头(例如 01 是非法的)。
    • 数值范围:转换为整数后,数值必须在 255 之间。
  2. 分类逻辑

    • 校验通过后,仅根据 IP 地址的第一个整数(第一段)来决定其类型:
      • : R (保留地址)
      • 1 ~ 126: A (A类)
      • 127: L (环回地址)
      • 128 ~ 191: B (B类)
      • 192 ~ 223: C (C类)
      • 224 ~ 239: D (组播地址)
      • 240 ~ 255: E (保留地址)

复杂度分析

  • 时间复杂度:$O(1)$。IP 地址的长度是有限的(最多 15 个字符),分割和校验的操作步数是常数级别的。
  • 空间复杂度:$O(1)$。仅需要存储 4 个整数和少量的临时变量。
THE END