A==B

#include<stdio.h>
#include<string.h>
int main( )
{
  char a[100020],b[100020],c[100020],d[100020];
  while(scanf("%s%s",a,b)!=EOF)
  {
   int i,j,k=0,m=0,n=0,len1,len2,f1=0,f2=0,f3=0,f4=0;
   len1=strlen(a);
   len2=strlen(b);
   for(i=0;i<len1;i++)
    {
      if(f1==0&&a[i]!='0') f1=1;
      if(f1) c[k++]=a[i];
      if(a[i]=='.') f3=1;
    }
    c[k]='\0';
      for(i=0;i<len2;i++)
    {
      if(f2==0&&b[i]!='0') f2=1;
      if(f2) d[m++]=b[i];
      if(b[i]=='.') f4=1;
    }
    d[m]='\0';
    if(f2==0&&f1==0)
    {
    printf("YES\n");
    continue;
    }
    if(f3)
     {
      i=k-1;
     while(c[i]=='0'||c[i]=='.')
     {
      
      if(c[i]=='.')
     {
      i--;
      break;
     }
     else 
     i--;
     }
     //printf("%d\n",i);
     k=i+1;
     c[k]='\0';
     //printf("3333333\n");
     }
      if(f4)
     {
      i=m-1;
      while(d[i]=='0'||d[i]=='.')
      {
       if(d[i]=='.')
      {
       i--;
       break;
      }
      else 
       i--;
      }    
      
      m=i+1;
      d[m]='\0';
    //  printf("44444444\n");
     }
    // printf("%s %s \n",c,d);
     if(strcmp(c,d)==0)
     printf("YES\n");
     else
     printf("NO\n");
   }
   return 0;
}
     
    
    

这道题真的是太YD了。。。我数组不仅要开100000以上,还有还多特殊数据要处理。。

如0001.0000000 1 ,10 100,00001.000 0001

总算AC了。。。

posted on 2011-04-29 22:04  more think, more gains  阅读(155)  评论(0编辑  收藏  举报

导航