hdu1238

题目链接传送门

题意:一共有t组数据每组都n串字符串,求这n串字符串的最长公共子字符串长度,注意可以是公共子字符串是其反串。

思路:数据较小,t在10以内,n在100以内,直接暴力搜索一遍 ac了虽然我觉得会超时。。。注意strstr函数的最差复杂度是O(n2);

hdu1238_第1张图片

代码

#include 
#include
#include
#include
#define maxn 100+10
using namespace std;
char sub[maxn],s[maxn][maxn],n,s1[maxn],s2[maxn];

int main()
{
    int t,i,j,k,m1,m2,mm,maxlen,minlen,mins;
    bool canfind;
    int maxlenth;
    scanf("%d",&t);

    while(t--)
    {
        maxlen=0;
        scanf("%d",&n);
        minlen=1<<10;
        scanf("%s",s[0]);
        mins=0,minlen=strlen(s[0]);
        for(i=1; istrlen(s[i]))
                minlen=strlen(s[i]),mins=i;
        }

        for(i=0; ij-i+1?maxlen:j-i+1;//更新最长子串长度值
            }

        }
        printf("%d\n",maxlen);
    }
    return 0;
}

你可能感兴趣的:(搜索入门)