| ||||||||||
| 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