#CF3713. 无限替换
无限替换
题目描述
给定一个仅由拉丁字母 a
组成的字符串 和一个由小写拉丁字母组成的字符串 。
在一次操作中,您可以将字符串 中的任何字母 a
替换为字符串 。请注意,在替换后,字符串 可能包含字母 a
以外的其他字母。
您可以执行任意数量的操作(包括零)。您可以获得多少个不同的字符串?输出数量,或报告它是无限大的。
如果两个字符串具有不同的长度或它们在某个索引处不同,则将它们视为不同。
输入格式
第一行包含一个整数 ——测试用例的数量。
每个测试用例的第一行包含一个非空字符串 ,仅由拉丁字母 a
组成。 的长度不超过 。
第二行包含一个非空字符串 ,由小写的拉丁字母组成。 的长度不超过 。
输出格式
对于每个测试用例,请输出在任意次数的操作(包括零次)之后可以获得的不同字符串 的数量。如果数量是无限大,则输出 -1
。否则,输出该数字。
测试样例
3
aaaa
a
aa
abc
a
b
1
-1
2
样例说明
在第一个例子中,你可以用字符串 a
替换任何字母 a
,但是这不会改变字符串。因此,无论你做多少次替换,都无法获得除初始字符串外的其他字符串。
在第二个例子中,你可以用 abc
替换第二个字母 a
。字符串 变为 aabc
。然后再替换第二个字母 a
。字符串 变为 aabcbc
。以此类推,可以生成无限多个不同的字符串。
在第三个例子中,你可以保留字符串 不变,不进行任何替换,或者用 b
替换唯一的字母 a
。字符串 变为 b
,因此你无法对它进行更多的替换。