zoukankan      html  css  js  c++  java
  • hdu_2054_A == B_201311301601

    A == B ?

    Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 53634    Accepted Submission(s): 8215

    Problem Description
    Give you two numbers A and B, if A is equal to B, you should print "YES", or print "NO".
     
    Input
    each test case contains two numbers A and B.
     
    Output
    for each case, if A is equal to B, you should print "YES", or print "NO".
     
    Sample Input
    1 2
    2 2
    3 3
    4 3
     
    Sample Output
    NO
    YES
    YES
    NO
     
     1 #include <stdio.h>
     2 #include <string.h>
     3 #define MAX 100000
     4 
     5 char str1[MAX+10],str2[MAX+10];
     6 int a1[MAX+10],a2[MAX+10],b1[MAX+10],b2[MAX+10];
     7 
     8 int bijiao(char *str1,char *str2)
     9 {
    10     int len1,len2;
    11         int i,j,k,t;       
    12         for(i=0;i<MAX+10;i++)
    13         a1[i]=a2[i]=b1[i]=b2[i]=0;
    14         len1=strlen(str1);
    15         for(i=0;i<len1;i++)
    16         if(str1[i]=='.')
    17         {t=i;break;}
    18         if(i>=len1)
    19         t=len1;
    20         for(j=0,i=t-1;i>=0;i--)
    21         a1[j++]=str1[i]-'0';
    22         for(j=0,i=t+1;i<len1;i++)
    23         a2[j++]=str1[i]-'0';
    24         len2=strlen(str2);
    25         for(i=0;i<len2;i++)
    26         if(str2[i]=='.')
    27         {t=i;break;}
    28         if(i>=len2)
    29         t=len2;
    30         for(j=0,i=t-1;i>=0;i--)
    31         b1[j++]=str2[i]-'0';
    32         for(j=0,i=t+1;i<len2;i++)
    33         b2[j++]=str2[i]-'0';
    34         if(len1==0&&len2==0)
    35         return 0;
    36         for(i=0;i<MAX;i++)
    37         {
    38             if(a1[i]!=0||a2[i]!=0||b1[i]!=0||b2[i]!=0)
    39             break;
    40         }
    41         if(i>=MAX)
    42         return 2;
    43         for(i=0;i<MAX;i++)
    44         {
    45             if(a1[i]!=b1[i])
    46             {
    47                 k=0;
    48                 break;
    49             }
    50         }
    51         if(i>=MAX)
    52         {
    53             for(i=0;i<MAX;i++)
    54             {
    55                 if(a2[i]!=b2[i])
    56                 {
    57                     k=0;
    58                     break;
    59                 }
    60             }
    61             if(i>=MAX)
    62             k=1;
    63         }
    64         return k;
    65         //puts(str1);
    66         //puts(str2);
    67 }
    68 int main()
    69 {
    70     while(scanf("%s%s",str1,str2)!=EOF)
    71     {
    72         int t=0,k;
    73         //gets(str2);
    74         //getchar();
    75         if((str1[0]>='0'&&str1[0]<='9')&&(str2[0]>='0'&&str2[0]<='9'))
    76         k=bijiao(str1,str2);
    77         else if((str1[0]>='0'&&str1[0]<='9')&&(str2[0]=='+'))
    78         k=bijiao(str1,str2+1);
    79         else if((str2[0]>='0'&&str2[0]<='9')&&(str1[0]=='+'))
    80         k=bijiao(str1+1,str2);
    81         else if(str1[0]==str2[0])
    82         k=bijiao(str1+1,str2+1);
    83         else
    84         {
    85             t=bijiao(str1+1,str2+1);
    86             if(t==2)
    87             k=1;
    88             else
    89             k=0;
    90         }
    91         if(k)
    92         printf("YES
    ");
    93         else
    94         printf("NO
    ");
    95     }
    96     return 0;
    97 }

    wa了n次,原来是数组开的太小

     
  • 相关阅读:
    java中接口与抽象类的区别
    单例模式的懒汉式和饿汉式实现分析
    filter的原理(转)
    事务与连接池
    request对象和response对象的作用和相关方法
    java环境变量配置
    关于http
    java笔记5
    理解String的intern()方法
    用递归的方法算出给定字符串的最大连续重复字符的重复次数
  • 原文地址:https://www.cnblogs.com/xl1027515989/p/3452934.html
Copyright © 2011-2022 走看看