题目地址
题解思路
不断根据 前面多0 后面多0 有无小数点 进行测试模拟 不断debug
我总不可能又菜又不写模拟题吧
AC代码
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std ;
const int maxn = 1e5;
char a[maxn];
char b[maxn];
int main()
{
while(cin>>a>>b)
{
int book=0;
int s1 = strlen(a),book1=0,vis1=0,z1=0;
int s2 = strlen(b),book2=0,vis2=0,z2=0;
for(int i = 0;i < s1 ; i++)
{
if(a[i]=='.')
book1=i;
if(a[i]=='0'&&book==0)
vis1++;
else
{
book=1;
}
}
book=0;
for(int i = 0;i < s2 ; i++)
{
if(b[i]=='.')
book2=i;
if(b[i]=='0'&&book==0)
vis2++;
else
{
book=1;
}
}
if(s1!=vis1)
{
int u=0;
if(vis1!=0)
for(int i = vis1;i <s1 ; i++)
{
a[u]=a[i];
u++;
a[i]=0;
}
}else
z1=1;
if(s2!=vis2)
{
int u=0;
if(vis2!=0)
for(int i = vis2;i <s2 ; i++)
{
b[u]=b[i];
u++;
b[i]=0;
}
}else
z2=1;
if(z1==1&&z2==1)
{
cout<<"YES"<<"\n";
continue;
}
s1 = strlen(a);
s2 = strlen(b);
if(book1)
{
for(int i = s1-1 ;i >=0 ; i--)
{
if(a[i]=='0')
{
a[i]=0;
s1--;
}
else
break;
}
if(s1==1&&a[0]=='.')
z1=1;
}
if(book2)
{
for(int i = s2-1 ;i >=0 ; i--)
{
if(b[i]=='0')
{
b[i]=0;
s2--;
}
else
break;
}
if(s2==1&&b[0]=='.')
z2=1;
}
for(int i= 0;i<s1;i++)
{
if(a[i]=='.'&&i==s1-1)
{
a[i]=0;
s1--;
}
}
for(int i= 0;i<s2;i++)
{
if(b[i]=='.'&&i==s2-1)
{
b[i]=0;
s2--;
}
}
//for(int i= 0;i<s1;i++)
// cout<<a[i];
// cout<<"\n";
//for(int i=0; i<s2;i++)
// cout<<b[i];
// cout<<"\n";
if(z1==1&&z2==1)
{
cout<<"YES"<<"\n";
continue;
}
if(s1==s2)
{
int i = 0;
for(;i < s1; i ++)
{
if(a[i]!=b[i])
{
cout<<"NO"<<"\n";
break;
}
}
if(i==s1)
cout<<"YES"<<"\n";
}else
cout<<"NO"<<"\n";
}
return 0;
}