poj1226---字符串

来源:互联网 发布:abaqus软件价格 编辑:程序博客网 时间:2024/04/30 16:10
//很纯很纯的水题//从长度len---1依次枚举,数据相当弱,就这样过了#include<stdio.h>#include<algorithm>#include<string.h>using namespace std;char str[110][110],st[110],en[110];int n,m,t;bool isok(char *ch,char *cg,int len,int id){    int j,k,l;    for(j=0; j+len<=strlen(str[id]); j++)    {        bool tmp1=false,tmp2=false;        for(k=j,l=0; l<len; k++,l++)        {            if(ch[l]!=str[id][k]) tmp1=1;            if(cg[l]!=str[id][k]) tmp2=1;        }        if(!tmp1||!tmp2) return 1;    }    return 0;}int solve(int id){    int i,j,k,len=strlen(str[id]),maxl;    maxl=len;    while(len)    {        for(i=0; i+len<=maxl; i++)        {            for(j=i,k=0; k<len; j++,k++)            {                st[k]=str[id][j];                en[k]=str[id][len+i-k-1];            }            for(j=k=0; j<n; j++)                if(!isok(st,en,len,j))                {                    k=1;break;                }            if(!k) return len;        }        len--;    }    return 0;}int main(){    int i,j,k,id,maxl;    scanf("%d",&t);    while(t--)    {        scanf("%d",&n);        for(i=id=0,maxl=110; i<n; i++)        {            scanf("%s",str[i]);            if(strlen(str[i])<maxl)            {                maxl=strlen(str[i]),id=i;            }        }        printf("%d\n",solve(id));    }    return 0;}