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 翻译