给定两个仅由小写英文字母组成的字符串 S 和 T。
考虑将字符串 S 无限次拼接而成的无限长字符串 S' = SSS\cdots(即 S 重复无限多次)。例如,若 S = \text{abc},则 S' = \text{abcabcabc}\cdots。
定义:字符串 A 的子序列是指从 A 中删除零个或任意多个字符后,将剩余字符按原有相对顺序连接而成的字符串。如:字符串 ABCDE 的子序列可以有:ABCDE、ABDE、ACE、CDE、E \cdots。但根据定义,字符串 ABCDE 的子序列一定不可能有 ABEDC、CAE、EDCBA。
现在要求:判断是否存在正整数 i,使得 T 是 S' 的前 i 个字符构成的字符串的一个子序列。
如果存在这样的 i,请输出满足条件的最小 i;如果不存在任何满足条件的 i,请输出 -1。
第一行输入仅由小写字母组成的字符串 S。
第二行输入仅由小写字母组成的字符串 T。
输出一个整数,表示满足条件的最小 i。如果不存在,请输出 -1。
contest son
10
contest programming
-1
contest sentence
33
对于 S=\text{contest}、T=\text{son}:
contestcon。s、位置 8 的 o、位置 10 的 n,构成 son。contestco,无法找到足够的 n 来完成匹配。对于 T=\text{programming},无论将 S=\text{contest} 重复多少次,其前缀中都不存在按顺序出现 p、r、o、g、r、a、m、m、i、n、g 所需的全部字母(缺少 p、g 等关键字母),故不存在满足条件的 i,输出 -1。
| 测试点编号 | |S| | |T| |
|---|---|---|
| 1 \sim 2 | |S|=1 | |T|=1 |
| 3 \sim 4 | |S|=2 | |T|=1 |
| 5 \sim 6 | |S|=1 | |T|=2 |
| 7 \sim 25 | 1 \le |S| \le 10^5 | 1 \le |T| \le 10^5 |
对于 100\% 的数据,满足 1 \le |S| \le 10^5,1 \le |T| \le 10^5,S 和 T 均仅由小写英文字母组成。(|S| 表示字符串 S 的长度)