我在使用了大量的string内置函数出现了WA的情况,请问是有什么特殊测试点吗?
我想到的:
小数:0.0 , 120.021 , 0.00
分数:0/0(虽然不会有这个)
目前就想到这些特殊,附上源码
#include <bits/stdc++.h>
using namespace std;
string in;
int symbolidx;//the index of symbol
int main()
{
cin>>in;
if(in.find('.')!=string::npos)//double
{
int pos=in.find('.');
string beforesym=in.substr(0,pos);
reverse(beforesym.begin(),beforesym.end());
if(beforesym[0]=='0'&&beforesym.size()!=1)//zero at first
{
beforesym.erase(0,beforesym.find_first_not_of('0'));
}
cout<<beforesym<<'.';
string aftersym=in.substr(pos+1);
if(aftersym[0]=='0')//zero at first
{
aftersym.erase(0,aftersym.find_first_not_of('0'));
}
reverse(aftersym.begin(),aftersym.end());
if(aftersym.size()==0)
{
cout<<0;
}
cout<<aftersym;
}
else if(in.find('/')!=string::npos)//double
{
int pos=in.find('/');
string beforesym=in.substr(0,pos);
reverse(beforesym.begin(),beforesym.end());
if(beforesym[0]=='0'&&beforesym.size()!=1)//zero at first
{
beforesym.erase(0,beforesym.find_first_not_of('0'));
}
cout<<beforesym<<'/';
string aftersym=in.substr(pos+1);
reverse(aftersym.begin(),aftersym.end());
if(aftersym[0]=='0')//zero at first
{
aftersym.erase(0,aftersym.find_first_not_of('0'));
}
if(aftersym.size()==0)
{
cout<<0;
}
cout<<aftersym;
}
else if(in.find('%')!=string::npos)//double
{
int pos=in.find('%');
string beforesym=in.substr(0,pos);
reverse(beforesym.begin(),beforesym.end());
if(beforesym[0]=='0'&&beforesym.size()!=1)//zero at first
{
beforesym.erase(0,beforesym.find_first_not_of('0'));
}
cout<<beforesym<<'%';
}
else
{
reverse(in.begin(),in.end());
cout<<in;
}
return 0;
}
//Luogu @OceanInDreams