美团 · 字符串 · 算法编程题
美团 字符串 时限 1 秒 / 256 MB

题目描述

某网络系统需要对输入的IP地址进行合法性判断。IP地址由四个十进制数字组成,每个数字的取值范围是0到255(包含0和255)。
IP地址的格式为X.X.X.X,其中X表示一个十进制数字。系统要求判断输入的IP地址是否合法,即满足以下条件:
1.IP地址由四个数字组成,用点号分隔。
2.每个数字的取值范围是0到255。
3.数字之间没有多余的前导零,例如01是非法的。
4.IP地址不能以点号开始或结束,例如.192.168.0.1和192.168.0.1.是非法的。
不合法的情况下输出"invalid",合法的情况下,你还需要判断是哪一类地址:
A类地址:地址范围从1.0.0.0到126.0.0.0
B类地址:地址范围从128.0.0.0到191.255.255.255
C类地址:范围从192.0.0.0到223.255.255.255
其它地址:合法输入,但是不是A、B、C类
请通过代码实现上述功能

输入输出

输入描述
一行字符串,表示需要判断的IP地址
输出描述
不合法的情况下,输出“invalid”
A类地址,输出“A_address"
B类地址,输出“B_address"
C类地址,输出“C_address"
其它地址,输出“other”

样例共 3 组

样例 1
输入
1.2.3.4
输出
A_address
样例 2
输入
1.1.1.256a
输出
invalid
样例 3
输入
192.168.0.1
输出
C_address

算法解析依据充分

考点:字符串

限制 1 秒 / 256MB | 标准输入输出

题目画像

  • 源站时限:1 秒(牛客口径,非本题专属门槛)

解题思路

推荐方向:字符串

本题切入点

按四条规则逐项校验:段数、每段 0~255、无前导零、首尾无点号;再按首段数值判断 A/B/C 类。

按字符逐个处理,或利用字符串的前后缀性质加速匹配。

思路框架(字符串 通法 · 非本题专属)

  1. 明确操作对象是字符还是子串、是否需要保持原顺序。
  2. 子串问题常用双指针 / 滑动窗口;回文问题可用中心扩展或哈希。
  3. 多模式匹配考虑 Trie 或 KMP;只需计数则用哈希表统计字符频次。
  4. 注意字符集大小写敏感性与输入是否带引号。

实现要点:Python 切片 s[l:r+1] 取子串;注意字符串不可变,频繁拼接改用 list。

复杂度:时间 O(n) ~ O(n²) | 空间 O(n)

该范式的通法易错点

  • 下标与切片边界差 1。
  • 忽略了大小写、空白字符的影响。

样例

样例 1

  • 输入:1.2.3.4
  • 输出:A_address

样例 2

  • 输入:1.1.1.256a
  • 输出:invalid

解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。

本题来源:2023年美团秋招编程岗第三批笔试。

‹ 上一题 全部编程题 下一题 ›
编程算法题为只读内容:无需作答,直接看题与解析 · 本站不提供在线判题 · 解析由校招宝本地引擎整理,非官方题解