Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:为什么错了?请给个数据,谢谢!In Reply To:为什么错了?请给个数据,谢谢! Posted by:demo at 2008-04-11 19:05:47 > #include<stdio.h> > #include<string.h> > typedef struct > { > char a[110]; > int l; > }ad; > int zm(char s1[],char s2[],int i,int j)//顺序匹配 > { > int cd=0,l1=strlen(s1),l2=strlen(s2); > if(s2[j]!=s1) > return 0; > while(j<l2&&i<l1) > { > if(s2[j]==s1) > { > i++; > j++; > cd++; > } > else break; > } > return cd; > } > int nm(char s1[],char s2[],int i,int j)//逆序匹配 > { > int cd=0,l1=strlen(s1),l2=strlen(s2); > if(s2[j]!=s1) > return 0; > while(j>=0&&i<l1) > { > if(s2[j]==s1) > { > j--; > i++; > cd++; > } > else break; > } > return cd; > } > int main() > { > int t,i,j,k,n,ml,id,s,c[110],ma,m,q,d[110]; > ad b[110]; > scanf("%d",&t); > while(t--) > { > scanf("%d",&n); > getchar(); > ml=110;s=0;/*找最小长度的字符串 > for(i=0;i<n;i++) > { > gets(b.a); > b.l=strlen(b.a); > if(b.l<ml) > { > ml=b.l; > id=i; > } > }*/ > for(j=0;j<b[id].l;j++)//取要匹配的字符串的第一个字符 > { > c[j]=200; > for(k=0;k<n;k++) > { > d[k]=180;q=0; > if(k!=id) > {/*取顺序,逆序匹配的最大长度 > for(m=0;m<b[k].l;m++) > if(zm(b[id].a,b[k].a,j,m)>q) > q=zm(b[id].a,b[k].a,j,m); > for(m=b[k].l-1;m>=0;m--) > if(nm(b[id].a,b[k].a,j,m)>q) > q=nm(b[id].a,b[k].a,j,m); > d[k]=q; > }*/ > else d[k]=150; > if(d[k]<c[j]) c[j]=d[k]; > } > } > ma=0; > for(j=0;j<b[id].l;j++) > { > if(c[j]>ma) > ma=c[j]; > } > printf("%d\n",ma); > } > return 0; > } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator