CF1744A Number Replacement
题目描述
一个整数数组 $a_1, a_2, \ldots, a_n$ 正在通过以下过程被转换为一个由小写英文字母组成的数组:
只要数组中至少还有一个数字,重复以下操作:
- 从数组 $a$ 中任选一个数字 $x$,以及英文字母表中的任意一个字母 $y$。
- 将数组中所有等于 $x$ 的数字都替换为字母 $y$。
例如,初始数组 $a = [2, 3, 2, 4, 1]$,可以按如下方式进行转换:
- 选择数字 $2$ 和字母 c,操作后 $a = [c, 3, c, 4, 1]$。
- 选择数字 $3$ 和字母 a,操作后 $a = [c, a, c, 4, 1]$。
- 选择数字 $4$ 和字母 t,操作后 $a = [c, a, c, t, 1]$。
- 选择数字 $1$ 和字母 a,操作后 $a = [c, a, c, t, a]$。
转换完成后,所有字母会合并成一个字符串,在本例中得到字符串 "cacta"。
给定数组 $a$ 和字符串 $s$,判断能否通过上述过程将数组 $a$ 转换为字符串 $s$。
输入格式
第一行包含一个整数 $t$($1 \leq t \leq 10^3$),表示测试用例的数量。
接下来是每个测试用例的描述。
每个测试用例的第一行包含一个整数 $n$($1 \leq n \leq 50$),表示数组 $a$ 和字符串 $s$ 的长度。
第二行包含恰好 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \leq a_i \leq 50$),表示数组 $a$ 的元素。
第三行包含一个长度为 $n$ 的字符串 $s$,仅由小写英文字母组成。
输出格式
对于每个测试用例,如果可以将数组 $a$ 转换为字符串 $s$,输出 "YES";否则输出 "NO"。输出时字母大小写均可。
说明/提示
第一个测试用例对应题目描述中的示例。
在第二个测试用例中,可以选择数字 $50$ 和字母 a。
在第三个测试用例中,可以先选择数字 $11$ 和字母 a,操作后 $a = [a, 22]$。然后选择数字 $22$ 和字母 b,得到 $a = [a, b]$。
在第五个测试用例中,可以将所有数字依次替换为字母 a。
由 ChatGPT 4.1 翻译