在脑袋里全是浆糊的WA了一晚上,以后才意识到~
题目:POJ2065
地址:http://acm.fzu.edu.cn/problem.php?pid=2065
感想:
- ╮(╯▽╰)╭
心得:
- ╮(╯▽╰)╭
- 自己定义规则,将所有数字变为‘1’,e/E变为‘e’,小数点变为‘.’ ,正负号变为 ‘+’
代码:
234 ms | 196KB | 1030B |
#include <iostream>
#include <cstring>
#include<string>
#include<algorithm>
using namespace std;
int doit(string &str, char sim[])
{
int i, l = str.length();
int cnt = 0, mark = 0;
for(i=0;i<l;i++)
{
if((str[i]>='0'&&str[i]<='9'))
mark = 1;
else if(mark)
{
sim[cnt++] = '1';
mark = 0;
}
if((str[i]=='e'||str[i]=='E'))
sim[cnt++] = 'e';
else if((str[i]=='+'||str[i]=='-'))
sim[cnt++] = '+';
else if((str[i]=='.'))
sim[cnt++] = '.';
else if(!(str[i]>='0'&&str[i]<='9'))
return 0;
}
if(mark)
sim[cnt++] = '1';
return 1;
}
int main()
{
string str, ssim;
char sim[100];
int t;
cin>>t;
while(t--)
{
memset(sim,'\0',sizeof(sim));
cin>>str;
if(doit(str,sim))
{
ssim = sim;
if(ssim=="1"||ssim==".1"||ssim=="1."||ssim=="1.1"||ssim=="1e1"||ssim=="1e+1"||ssim==".1e1"||ssim==".1e+1"||ssim=="1.e1"||ssim=="1.e+1"||ssim=="1.1e1"||ssim=="1.1e+1")
cout<<str<<endl;
}
}
}