SDNU 1301.判断相等 字符串比较数字

1301.判断相等

Description

给定两个数A和B(长度不超过100),判断A和B是否相等。

Input

有多组测试数据,每组测试数据占一行,每行两个数A和B,由空格隔开。

Output

每个测试数据的结果输出到一行,如果A和B相等输出"yes",否则输出"no"。

Sample Input

-00.00 000000
-0 0
-00000 0.0000
-0001 -1
2 3
00000000000001.0001200000 00000000000001.00001200000
-00000000000000000000000000000000000 00000000000000000000000000000000000

Sample Output

yes
yes
yes
yes
no
no
yes

     题目很简单,就是输入两个字符串比较一下就行,只要耐心点慢慢敲就好= =把情况考虑全了就能过,具体的不多说了,直接看代码吧

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
char s1[100005],s2[100005];

int main()
{
     int i,j;
     int len1,len2;
     int d1,d2;
     int ol1,ol2,or1,or2;
     int flag;
     while(scanf("%s",s1)!=EOF)
     {
          scanf("%s",s2);
          len1=strlen(s1);
          len2=strlen(s2);
          d1=d2=0;
          ol1=ol2=0;
          or1=or2=0;
          flag=0;
          for(i=0;i<len1;i++)
          {
               if(s1[i]=='.')
               {
                    d1=i;
                    break;
               }
          }
          for(i=0;i<len2;i++)
          {
               if(s2[i]=='.')
               {
                    d2=i;
                    break;
               }
          }
          for(i=0;i<len1;i++)
          {
               if(s1[i]=='0'||s1[i]=='-')
                    ol1++;
               else
                    break;
          }
          for(i=0;i<len2;i++)
          {
               if(s2[i]=='0'||s2[i]=='-')
                    ol2++;
               else
                    break;
          }
          if((s1[0]=='-'&&s2[0]!='-')||(s1[0]!='-'&&s2[0]=='-'))
          {
               for(i=0;i<len1;i++)
               {
                    if(s1[i]>'0'&&s1[i]<='9')
                    {
                         flag=1;
                         break;
                    }
               }
               if(flag==1)
               {
                    cout<<"no"<<endl;
                    continue;
               }
               for(i=0;i<len2;i++)
               {
                    if(s2[i]>'0'&&s2[i]<='9')
                    {
                         flag=1;
                         break;
                    }
               }
               if(flag==1)
               {
                    cout<<"no"<<endl;
                    continue;
               }
               else
               {
                    cout<<"yes"<<endl;
                    continue;
               }
          }
          else if(d1==0&&d2!=0)
          {
               for(i=d2+1;i<len2;i++)
               {
                    if(s2[i]>'0'&&s2[i]<='9')
                    {
                         flag=1;
                         break;
                    }
               }
               if(flag==1)
               {
                    cout<<"no"<<endl;
                    continue;
               }
               len2=d2;
               if(len1-ol1!=len2-ol2)
               {
                    cout<<"no"<<endl;
                    continue;
               }
               else
               {
                    for(i=ol1,j=ol2;i<len1;i++,j++)
                    {
                         if(s1[i]!=s2[j])
                         {
                              flag=1;
                              break;
                         }
                    }
                    if(flag==1)
                    {
                         cout<<"no"<<endl;
                         continue;
                    }
                    else
                    {
                         cout<<"yes"<<endl;
                         continue;
                    }
               }
          }
          else if(d1!=0&&d2==0)
          {
               for(i=d1+1;i<len1;i++)
               {
                    if(s1[i]>'0'&&s1[i]<='9')
                    {
                         flag=1;
                         break;
                    }
               }
               if(flag==1)
               {
                    cout<<"no"<<endl;
                    continue;
               }
               len1=d1;
               if(len1-ol1!=len2-ol2)
               {
                    cout<<"no"<<endl;
                    continue;
               }
               else
               {
                    for(i=ol1,j=ol2;i<len1;i++,j++)
                    {
                         if(s1[i]!=s2[j])
                         {
                              flag=1;
                              break;
                         }
                    }
                    if(flag==1)
                    {
                         cout<<"no"<<endl;
                         continue;
                    }
                    else
                    {
                         cout<<"yes"<<endl;
                         continue;
                    }
               }
          }
          else if(d1!=0&&d2!=0)
          {
               for(i=len1-1;i>=0;i--)
               {
                    if(s1[i]=='0')
                         or1++;
                    else
                         break;
               }
               for(i=len2-1;i>=0;i--)
               {
                    if(s2[i]=='0')
                         or2++;
                    else
                         break;
               }
               if(len1-ol1-or1!=len2-ol2-or2)
               {
                    cout<<"no"<<endl;
                    continue;
               }
               else
               {
                    for(i=ol1,j=ol2;i<len1;i++,j++)
                    {
                         if(s1[i]!=s2[j])
                         {
                              flag=1;
                              break;
                         }
                    }
                    if(flag==1)
                    {
                         cout<<"no"<<endl;
                         continue;
                    }
                    else
                    {
                         cout<<"yes"<<endl;
                         continue;
                    }
               }
          }
          else
          {
               if(len1-ol1!=len2-ol2)
               {
                    cout<<"no"<<endl;
                    continue;
               }
               else
               {
                    for(i=ol1,j=ol2;i<len1;i++,j++)
                    {
                         if(s1[i]!=s2[j])
                         {
                              flag=1;
                              break;
                         }
                    }
                    if(flag==1)
                    {
                         cout<<"no"<<endl;
                         continue;
                    }
                    else
                    {
                         cout<<"yes"<<endl;
                         continue;
                    }
               }
          }
     }
     return 0;
}


    好吧= =我承认写的有点太长了......

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值