数字字符串模板
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
克里斯蒂娜有一个由 n 个整数组成的数组 a,称为模板。她还有 m 个字符串,每个字符串都只由小写拉丁字母组成。这些字符串的编号从 1 到 m。她想检查哪些字符串与模板匹配。
如果同时满足以下所有条件,则认为字符串 s 与模板匹配:
- 字符串 s 的长度等于数组 a 中的元素个数。
- a 中的相同数字对应于 s 中的相同符号。因此,如果 a[i] = a[j],那么 s[i] = s[j](1 ≤ i, j ≤ n)。
- s 中的相同符号对应于 a 中的相同数字。因此,如果 s[i] = s[j],那么 a[i] = a[j](1 ≤ i, j ≤ n)。
换句话说,字符串中的字符与数组中的元素必须一一对应。
例如,如果 a = [3, 5, 2, 1, 3],那么字符串 "abfda" 与模板相匹配,而字符串 "afbfa" 则不匹配,因为字符 "f" 同时对应数字 1 和 5。
输入格式
第一行包含一个整数 n(1 ≤ n ≤ 200000),代表数组 a 中的元素个数。 第二行包含 n 个整数(-1000000000 ≤ a[i] ≤ 1000000000 且 a[i] ≠ 0),代表数组 a 中的元素。 第三行包含一个整数 m(1 ≤ m ≤ 200000),代表要检查模板匹配的字符串数量。 接下来 m 行,每行包含一个非空字符串 s(1 ≤ |s| < 200000),由小写拉丁字母组成。
输出格式
输出 m 行,在第 i 行输出“YES”,如果编号为 i 的字符串与模板匹配,否则输出“NO”。
样例输入
5
3 5 2 1 3
2
abfda
afbfa
样例输出
YES
NO
样例解释
第一个字符串 "abfda" 长度为 5,和数组 a 的元素个数一致。数组中第 1 个和第 5 个元素都是 3,对应字符串中第 1 个和第 5 个字符都是 'a';数组中其他位置的元素互不相同,对应字符串中其他位置的字符也互不相同,满足一一对应关系,因此输出 YES。
第二个字符串 "afbfa" 长度为 5,和数组 a 的元素个数一致,但数组中第 2 个元素是 5,对应字符串中第 2 个字符是 'f',数组中第 4 个元素是 1,对应字符串中第 4 个字符也是 'f',同一个字符对应了不同的数字,不满足匹配条件,因此输出 NO。