A7047. 找找子串
编程题
普及/提高-
知识点
题目描述
给定两个只包含小写英文字母的字符串 $s$ 与 $t$。你可以进行若干次操作,每次操作将 $s$ 变为 $s+s$(即把 $s$ 自身拼接到末尾,长度翻倍)。
请你求出**最少**需要进行多少次操作,使得 $t$ 成为当前 $s$ 的一个**子串**;如果无论如何都无法做到,则输出 $-1$。
请你求出**最少**需要进行多少次操作,使得 $t$ 成为当前 $s$ 的一个**子串**;如果无论如何都无法做到,则输出 $-1$。
输入格式
一组单测。
第一行输入字符串 $s$。
第二行输入字符串 $t$。
第一行输入字符串 $s$。
第二行输入字符串 $t$。
输出格式
输出一个整数,为最少操作次数;若无法包含则输出 $-1$。
输入输出样例
输入 #1
ab baba
输出 #1
2
输入 #2
abcd bcda
输出 #2
1
输入 #3
abc ac
输出 #3
-1
说明/提示
- $1 \le |s|, |t| \le 2\times 10^5$
- 字符均为小写英文字母 $a\sim z$。
- 字符均为小写英文字母 $a\sim z$。