AlgoMooc
← 返回题库

P3258. 关联字串

中等通过率 54% · 提交 466 · 通过 250
滑动窗口哈希表字符串固定滑窗

小慕正在开发一个字符串匹配工具。他有两个字符串str1和str2,如果str1中的字符经过任意后,能得到一个字符串恰好是str2的某个连续子串,那么他就称str1是str2的。 如果str1是str2的关联子串,请返回这个子串在str2中第一次出现的;如果不是,则返回-1。

提示:带虚线的词点一下有通俗解释。

输入描述

输入两个字符串,分别为题目中描述的str1、str2。

输出描述

若str1是str2的关联子串,请返回子串在str2的起始位置; 若不是关联子串,则返回-1。 若str2中有多个str1的组合子串,请返回最小的起始位置。

示例

示例 1

输入

abc efghiccaiii

输出

-1

说明:"abc"字符串中三个字母的各种组合(abc、acb、bac、bca、cab、cba),str2中均不包含,因此返回-1

示例 2

输入

abc efghicabiii

输出

5

说明:str2包含str1的一种排列组合("cab"),此组合在str2的字符串起始位置为5(从0开始计数)

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解(训练营专属)

登录后查看题目图解

题目图解为训练营学员专属内容,请先登录。

微信扫码登录还不是训练营学员?了解训练营 →
写完代码点「提交」,将对全部测试用例判题。