CF1744A.Number Replacement

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Number Replacement

题目描述

一个整数数组 a1,a2,,ana_1, a_2, \ldots, a_n 正在通过以下过程被转换为一个由小写英文字母组成的数组:

只要数组中至少还有一个数字,重复以下操作:

  • 从数组 aa 中任选一个数字 xx,以及英文字母表中的任意一个字母 yy
  • 将数组中所有等于 xx 的数字都替换为字母 yy

例如,初始数组 a=[2,3,2,4,1]a = [2, 3, 2, 4, 1],可以按如下方式进行转换:

  • 选择数字 22 和字母 c,操作后 a=[c,3,c,4,1]a = [c, 3, c, 4, 1]
  • 选择数字 33 和字母 a,操作后 a=[c,a,c,4,1]a = [c, a, c, 4, 1]
  • 选择数字 44 和字母 t,操作后 a=[c,a,c,t,1]a = [c, a, c, t, 1]
  • 选择数字 11 和字母 a,操作后 a=[c,a,c,t,a]a = [c, a, c, t, a]

转换完成后,所有字母会合并成一个字符串,在本例中得到字符串 "cacta"。

给定数组 aa 和字符串 ss,判断能否通过上述过程将数组 aa 转换为字符串 ss

输入格式

第一行包含一个整数 tt1t1031 \leq t \leq 10^3),表示测试用例的数量。

接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 nn1n501 \leq n \leq 50),表示数组 aa 和字符串 ss 的长度。

第二行包含恰好 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n1ai501 \leq a_i \leq 50),表示数组 aa 的元素。

第三行包含一个长度为 nn 的字符串 ss,仅由小写英文字母组成。

输出格式

对于每个测试用例,如果可以将数组 aa 转换为字符串 ss,输出 "YES";否则输出 "NO"。输出时字母大小写均可。

说明/提示

第一个测试用例对应题目描述中的示例。

在第二个测试用例中,可以选择数字 5050 和字母 a。

在第三个测试用例中,可以先选择数字 1111 和字母 a,操作后 a=[a,22]a = [a, 22]。然后选择数字 2222 和字母 b,得到 a=[a,b]a = [a, b]

在第五个测试用例中,可以将所有数字依次替换为字母 a。

由 ChatGPT 4.1 翻译

样例

7
5
2 3 2 4 1
cacta
1
50
a
2
11 22
ab
4
1 2 2 1
aaab
5
1 2 3 2 1
aaaaa
6
1 10 2 9 3 8
azzfdb
7
1 2 3 4 1 1 2
abababb
YES
YES
YES
NO
YES
YES
NO

在线编程 IDE

建议全屏模式获得最佳体验