Substrings HDU

来源:互联网 发布:bp神经网络算法步骤 编辑:程序博客网 时间:2024/06/12 00:00

http://www.cnblogs.com/yuyixingkong/p/3897611.html

题意 寻找最长公共子串(正序逆序皆可)
应用string.h头文件里的strstr函数

#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){   int t;   scanf("%d",&t);   while(t--)   {       char a[101][105];       int n;       scanf("%d",&n);       int k;       int maxn=0;       int minn=0x3f3f3f3f;       for(int i=0;i<n;i++)       {           scanf("%s",a[i]);           int y=strlen(a[i]);           if(y<minn)           {              minn=y;              k=i;           }       }       char s1[107],s2[102];       int x=strlen(a[k]);       for(int i=0;i<x;i++)       {          for(int j=i;j<x;j++)          {             for(int h=i;h<=j;h++)             {                s1[h-i]=s2[j-h]=a[k][h];             }             s1[j-i+1]=s2[j-i+1]='\0';             int flag=1;             for(int h=0;h<n;h++)             {                if(!strstr(a[h],s1)&&!strstr(a[h],s2))                {                    flag=0;                    break;                }             }             if(flag&&j-i+1>maxn)             {                 maxn=j-i+1;             }          }       }       printf("%d\n",maxn);   }}