基本思想:从主串s寻找子串t,从s和t的第一个字符开始匹配,若匹配,则继续第二个匹配,若到后面(匹配到第m位,未匹配完),则子串t回溯到第一个字符,主串回溯到第二个字符,继续子串的第一个和主串的第二个匹配。。。。
伪代码:
- 在串s和串t中设置比较的起始下标i和j;
重复下述操作,直到s或t的所有字符均比较完毕;
2.1 如果s[i]等于t[j],继续比较s和t的下一对字符
2.1否则将下标i和j回溯,准备下一趟比较- 如果t中所有字符均比较完,则匹配成功,返回匹配的开始位置,否则,匹配失败,返回0(约定返回0代表匹配失败)
图片来源于数据结构(C++版)清华大学出版社
下面是代码的展示:
#include<iostream>
#include<string>
using namespace std;
int main() {

最低0.47元/天 解锁文章
1281

被折叠的 条评论
为什么被折叠?



