天天看点

【LeetCode】796. 旋转字符串

知识点:字符串;kmp算法;

给定两个字符串, a 和 b。

a 的旋转操作就是将 a 最左边的字符移动到最右边。 例如, 若 a = 'abcde',在移动一次之后结果就是'bcdea' 。如果在若干次旋转操作之后,a 能变成b,那么返回true。

依次后移依次比较

其实a+a里就包含了所有a进行旋转的结果,所以只要判断b是否是a的子串就可以了,而string类含有contains方法;

按照上面的分析,如果把a拓展成为a+a,那这道问题就变成了在a+a中是否含有b的子串,这是经典的字符串匹配问题,最经典的当属于kmp算法。

28. 实现 strstr()

kmp算法