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;
}
好吧= =我承认写的有点太长了......