AT_past19_c 良さそうな数
题目描述
一个**好数**定义如下:
- 当且仅当一个正整数 $x$ 满足以下条件时,称其为**好数**:
- $x$ 的每一对相邻数字的差的绝对值不超过 $1$。
- 形式化地说,若 $x$ 有 $k$ 位,十进制表示为 $d_1d_2\dots d_k$,则对所有 $1 \le i < k$,都有 $|d_i - d_{i+1}| \le 1$。
例如,$1, 56, 777, 3234$ 是好数,但 $13, 1235, 909$ 不是好数。
一个**接近好数**定义如下:
- 当且仅当可以通过至多修改 $x$ 的至多一位数字,使其成为好数时,称其为**接近好数**。此处不允许产生前导零。
- 形式化地说,若 $x$ 有 $k$ 位,十进制表示为 $d_1d_2\dots d_k$,那么存在整数对 $(p, q)$,满足:
- $1 \le p \le k$,
- $0 \le q \le 9$,
- $(p, q) \neq (1, 0)$,
- 将 $x$ 的第 $p$ 位 $d_p$ 修改为 $q$ 后,$x$ 变为一个好数。
- 注意,每个好数也是接近好数。
例如,对于 $7176$,可以将 $d_2$ 改为 $8$ 变成 $7876$,这是一个好数,因此 $7176$ 是接近好数。
给定一个整数 $N$,判断 $N$ 是否是接近好数。
输入格式
输入包含一行:
> $N$
输出格式
如果 $N$ 是接近好数,输出 `Yes`,否则输出 `No`。
说明/提示
### 样例解释 1
此例同题目描述中的例子。
### 样例解释 2
$2020$ 不是接近好数。
### 样例解释 4
$N$ 可能超过 $32$ 位有符号整数的范围。同时,$N$ 本身也可能就是好数。
### 数据范围
- $N$ 是一个整数,满足 $1 \le N < 10^{18}$。
由 ChatGPT 5 翻译