数据结构与算法-串(串的比较 朴素的模式匹配算法)

字符串的应用那是相当的广喽,我们当然要好好掌握一下字符串的操作了,今天小孱弱弱分享一下自己学习得字符串基本操作:
首先几点注意事项,不知道你们忘记了没 啊哈哈~
1.字符串的结尾‘\0’。
2.全是’\0’的字符串是空串。
下面带来第一个字符串操作算法:字符串的比较规则:
1.两个字符串先比较第一个字符,asc2码大的那个字符串获胜(大)。(sadfs<bewd)
2.若一直比较到最后一个字符都是相等,这两个字符串打成了平手(相等)。(asd==asd)
3.若是比较到一定字符数,其中一个字符串到尾巴啦,而另一个字符串后面依然有字符,后者大。(asdf>asd)

三条规则在手,打遍天下无敌手五哈啊哈哈哈!!!
代码在这呢:朴素模式匹配算法
思想巨简单,从第一个字符串开始,从低位开始遍历,每一位都与第二个字符串遍历比较,一直遍历到最后一位。这无疑算法时间复杂度很高,效率很低,不要怕,明天我们介绍效率高的kmp模式匹配算法。

//朴素的模式匹配算法(S[0],T[0]装着字符串的长度)
int Index(string S,string T,int pos)
{
	int i=pos;
	
	int j=1;
	
	while(i<=S[0]&&j<=T[0])
	{
		if(S[i]==T[j])
		{
			i++;
			j++;	
		}
		else
		{
			i=i-j+2;
			j=1;
		}	
	}
	if(j>T[0])
		return i-T[0];  //子串匹配的起始位置 
	else
		return 0;
	
 } 

猜你喜欢

转载自blog.csdn.net/weixin_47644373/article/details/106200391
今日推荐