#CF3713. 无限替换

无限替换

题目描述

给定一个仅由拉丁字母 a 组成的字符串 ss 和一个由小写拉丁字母组成的字符串 tt

在一次操作中,您可以将字符串 ss 中的任何字母 a 替换为字符串 tt。请注意,在替换后,字符串 ss 可能包含字母 a 以外的其他字母。

您可以执行任意数量的操作(包括零)。您可以获得多少个不同的字符串?输出数量,或报告它是无限大的。

如果两个字符串具有不同的长度或它们在某个索引处不同,则将它们视为不同。

输入格式

第一行包含一个整数 t(1t104)t(1≤t≤10^4) ——测试用例的数量。

每个测试用例的第一行包含一个非空字符串 ss,仅由拉丁字母 a 组成。ss 的长度不超过 5050

第二行包含一个非空字符串 tt,由小写的拉丁字母组成。tt 的长度不超过 5050

输出格式

对于每个测试用例,请输出在任意次数的操作(包括零次)之后可以获得的不同字符串 ss 的数量。如果数量是无限大,则输出 -1。否则,输出该数字。

测试样例

3
aaaa
a
aa
abc
a
b
1
-1
2

样例说明

在第一个例子中,你可以用字符串 a 替换任何字母 a,但是这不会改变字符串。因此,无论你做多少次替换,都无法获得除初始字符串外的其他字符串。

在第二个例子中,你可以用 abc 替换第二个字母 a。字符串 ss 变为 aabc。然后再替换第二个字母 a。字符串 ss 变为 aabcbc。以此类推,可以生成无限多个不同的字符串。

在第三个例子中,你可以保留字符串 ss 不变,不进行任何替换,或者用 b 替换唯一的字母 a。字符串 ss 变为 b,因此你无法对它进行更多的替换。