AT_abc257_g [ABC257G] Prefix Concatenation

题目描述

给定两个仅由小写英文字母组成的字符串 $S$ 和 $T$。 请你求出一个最小的正整数 $k$,使得可以通过连接 $k$ 个(可以相同也可以不同)$S$ 的前缀,得到字符串 $T$。 也就是说,设 $S_i$ 表示 $S$ 的第 $1$ 个字符到第 $i$ 个字符组成的前缀字符串,那么是否存在 $k$ 个 $1$ 到 $|S|$ 之间的整数 $a_1,a_2,\ldots,a_k$,使得 $$ T = S_{a_1} + S_{a_2} + \cdots + S_{a_k} $$ (这里 $+$ 表示字符串的连接),并求出最小的正整数 $k$。 如果无法通过上述方式得到 $T$,请输出 $-1$。

输入格式

输入以如下格式从标准输入读入: > $S$ $T$

输出格式

输出通过连接 $k$ 个 $S$ 的前缀能够得到 $T$ 的最小正整数 $k$。如果无法得到 $T$,则输出 $-1$。

说明/提示

## 限制条件 - $1 \leq |S| \leq 5 \times 10^5$ - $1 \leq |T| \leq 5 \times 10^5$ - $S,T$ 均为仅由小写英文字母组成的字符串 ## 样例解释 1 $T = $ `ababaab` 可以表示为 `ab` + `aba` + `ab`,其中 `ab` 和 `aba` 都是 $S = $ `aba` 的前缀。无法用不超过 $2$ 个 $S$ 的前缀连接得到 `ababaab`,因此输出 $3$。 ## 样例解释 2 无法通过连接 $S$ 的前缀得到 $T$,因此输出 $-1$。 由 ChatGPT 4.1 翻译