字符串匹配的BF算法

已知两个字符串,一个主串S,一个子串T,求子串在主串中是否出现。如果出现,输出子串在主串中的位置。

利用暴力求解算法,每次比较主串和子串中的一个字符是否相等,如果相等,两个串的下标均后移。如果不相等,子串下标回到零,主串下标回到上一次开始比较的下一个位置。也就是说,每匹配失败一次,子串相对主串只移动一个字符的位置。在最好的情况下,该算法的时间复杂度为O(m+n),在最坏的情况下,时间复杂度为O(m*n)。因此,该算法只适合求长度较短的字符串,如果主串和子串过长,很有可能会超时。

#include 
#include
#include

using namespace std;

int BF(char s[100],char t[10],int m)//m是指从主串下标为m的位置开始进行匹配
{
    int i=m,j=0;
    int lens=strlen(s),lent=strlen(t);
    while(i



你可能感兴趣的:(字符串)