暴力搜索算法

在这里插入图片描述

暴力搜索算法过程,用模式串P去和目标串T比较,如果对应字符匹配成功,两两后移一位,如果匹配不成功,模式串从T的下一个字符开始匹配,重复上述执行过程

/**暴力搜索算法,使用STL*/
#include<string>
#include<iostream>
using namespace std;//记得要写命名空间std,不然用不了string 
int i=0,j=0;
int bruteForce(string a,string b){
	i=0;
	int m=a.length();//目标串 
	int n=b.length();//模式串 
	while(i<m-n){
		j=0;
		while(a[i]==b[j]&&j<n){//匹配过程 
			i++;
			j++;
		}
		if(j==n){//匹配成功 
			return i-n;//返回匹配成功处的index 
		} 
		i=i-j+1;//下一次匹配开始处 
	}
	return -1;
}
int main(int argc,char * argv[]){
	char *a ="ajshdjfhf";
	char *b ="djf";
	int result=bruteForce(a,b);
	cout<<result<<endl;
	
	string aa=a;
	string bb=b;
	int result2=bruteForce(aa,bb);
	cout<<result2<<endl;
	
	return 0;
} 
发布了70 篇原创文章 · 获赞 71 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_43625764/article/details/102578464