#460. 判断合法的 IPv4 地址

判断合法的 IPv4 地址

题目描述

IPv4 地址通常写成 44 个十进制整数,每个整数的取值范围是 0∼2550\sim 255,相邻两个整数之间用一个英文句点 . 分隔,例如 192.168.0.1。

现在给定一个字符串 ss,请你判断它是否是一个合法的 IPv4 地址。一个合法的 IPv4 地址必须满足:

  1. 恰好由 44 段组成,段与段之间用 . 分隔;
  2. 每一段都由十进制数字组成,长度在 1∼31\sim 3 之间;
  3. 每一段的数值在 0∼2550\sim 255 之间;
  4. 除单独一个 0 之外,每一段不允许有前导零(即 0 合法,01、00、001 都不合法)。

输入格式

输入仅一行,为一个长度不超过 100100 的字符串 ss,字符串中不包含空格等空白字符。

输出格式

若 ss 是合法的 IPv4 地址,输出一行字符串 True,否则输出一行字符串 False。

样例

样例 1

输入:

192.168.0.1

输出:

True

样例 2

输入:

256.1.1.1

输出:

False

样例 3

输入:

01.2.3.4

输出:

False

说明/提示

  • 对于 100%100\% 的数据,1≤∣s∣≤1001 \le |s| \le 100,ss 仅由可见 ASCII 字符(不含空白字符)组成。
  • 注意:段的个数、前导零、非法字符、数值越界这几种情况都要分别判断。