CF1295C Obtain The String

题目描述

给定两个仅由小写拉丁字母组成的字符串 $s$ 和 $t$,以及一个初始为空的字符串 $z$。你希望通过操作使得字符串 $z$ 变为字符串 $t$。你可以进行如下操作:将 $s$ 的任意一个子序列追加到 $z$ 的末尾。子序列是指可以通过删除原序列中的零个或多个元素(不改变剩余元素的顺序)得到的序列。例如,如果 $z = ac$,$s = abcde$,你可以通过一次操作将 $z $ 变为以下字符串: 1. $z = acace$(如果选择子序列 $ace$); 2. $z = acbcd$(如果选择子序列 $bcd$); 3. $z = acbce$(如果选择子序列 $bce$)。 注意,每次操作后字符串 $s$ 不会发生变化。 请计算将字符串 $z$ 变为字符串 $t$ 所需的最少操作次数。如果无法实现,输出 $-1$。

输入格式

第一行包含一个整数 $T$($1 \le T \le 100$),表示测试用例的数量。 每个测试用例的第一行包含一个字符串 $s$($1 \le |s| \le 10^5$),仅由小写拉丁字母组成。 每个测试用例的第二行包含一个字符串 $t$($1 \le |t| \le 10^5$),仅由小写拉丁字母组成。 保证所有输入中字符串 $s$ 和 $t$ 的总长度不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,输出一个整数,表示将字符串 $z$ 变为字符串 $t$ 所需的最少操作次数。如果无法实现,输出 $-1$。

说明/提示

由 ChatGPT 4.1 翻译