P16867 [GKS 2021 #H] Silly Substitutions
题目描述
给定一个长度为 $N$ 的字符串 $S$,由数字 $0$-$9$ 组成。按以下顺序对字符串执行操作:
1. 找出所有子串 $\mathtt{01}$,并将其替换为 $\mathtt{2}$。
2. 找出所有子串 $\mathtt{12}$,并将其替换为 $\mathtt{3}$。
3. 找出所有子串 $\mathtt{23}$,并将其替换为 $\mathtt{4}$。
4. 找出所有子串 $\mathtt{34}$,并将其替换为 $\mathtt{5}$。
5. 找出所有子串 $\mathtt{45}$,并将其替换为 $\mathtt{6}$。
6. 找出所有子串 $\mathtt{56}$,并将其替换为 $\mathtt{7}$。
7. 找出所有子串 $\mathtt{67}$,并将其替换为 $\mathtt{8}$。
8. 找出所有子串 $\mathtt{78}$,并将其替换为 $\mathtt{9}$。
9. 找出所有子串 $\mathtt{89}$,并将其替换为 $\mathtt{0}$。
10. 找出所有子串 $\mathtt{90}$,并将其替换为 $\mathtt{1}$。
重复这一过程(按照相同的顺序),直到上述操作不再改变字符串。例如,若 $S$ 为 $\mathtt{12}$,则操作 $1$ 不会影响字符串,但操作 $2$ 会将字符串变为 $\mathtt{3}$。可以验证,无论重复多少次上述过程,字符串都不会再改变。
对于给定的 $S$,你的任务是求出最终的字符串。
输入格式
输入的第一行给出测试用例的数量 $T$。接下来有 $T$ 个测试用例。每个测试用例由两行组成。
每个测试用例的第一行包含一个整数 $N$,表示字符串 $S$ 的长度。
每个测试用例的第二行包含一个长度为 $N$ 的字符串 $S$。
输出格式
对于每个测试用例,输出一行,格式为 `Case #x: y`,其中 $x$ 是测试用例编号(从 $1$ 开始),$y$ 是最终得到的字符串。
说明/提示
在样例 #1 中,子串 $\mathtt{01}$ 被替换为 $\mathtt{2}$,得到字符串 $\mathtt{22}$,后续操作不会再改变它。因此最终字符串为 $\mathtt{22}$。
在样例 #2 中,子串 $\mathtt{01}$ 被替换为 $\mathtt{2}$,得到字符串 $\mathtt{245}$。然后子串 $\mathtt{45}$ 被替换为 $\mathtt{6}$,得到字符串 $\mathtt{26}$,不再受任何操作影响。因此最终字符串为 $\mathtt{26}$。
在样例 #3 中,无法对给定字符串执行任何操作,因此字符串保持不变。
在样例 #4 中,所有操作可以顺序作用于字符串,最终得到字符串 $\mathtt{1}$。
### 限制条件
$1 \le T \le 100$。
输入字符串仅由数字 $0$-$9$ 组成。
**测试集 1**
$1 \le N \le 100$。
**测试集 2**
最多 $10$ 个测试用例满足:
$1 \le N \le 5 \times 10^5$。
其余测试用例满足:
$1 \le N \le 100$。
翻译由 DeepSeek V4 Pro 完成