题目描述
读入主串 s 和模式串 t,使用 KMP 算法找 t 在 s 中第一次出现的起始下标(从 0 开始)。
若不存在,输出 -1。
要求:复杂度 O(|s| + |t|),不能使用 std::string::find 或朴素匹配。
mali 题库 · 编程题 · 难度:困难
标签:字符串、KMP
题目描述
读入主串 s 和模式串 t,使用 KMP 算法找 t 在 s 中第一次出现的起始下标(从 0 开始)。
若不存在,输出 -1。
要求:复杂度 O(|s| + |t|),不能使用 std::string::find 或朴素匹配。
输入格式
两行字符串 s, t(1 \le |t| \le |s| \le 10^6),只含小写字母。
输出格式
第一次出现的起始下标,或 -1。
样例
输入:
ababcabcacbab
abcac
输出: 5
输入:
hello
xyz
输出: -1
知识点:KMP、next 数组
正在加载在线提交与判题界面…