A7047 | 找找子串
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
给定两个只包含小写英文字母的字符串 $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$。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?