完全就是照打一遍
class Solution {
public:
bool isNumber(const char *s) {
if(s==NULL)
return false;
while(*s==' ')
s++;
if(*s=='+'||*s=='-')
s++;
bool spaceappear=false;
bool eappear=false;
bool dotappear=false;
bool firstpart=false;
bool secondpart=false;
while(*s!='\0')
{
if(*s=='e'||*s=='E')
{
if(eappear||!firstpart||spaceappear)
return false;
eappear=true;
}
else
if(*s=='.')
{
if(dotappear||eappear||spaceappear)
return false;
dotappear=true;
}
else
if(isdigit(*s))
{
if(spaceappear)
return false;
if(!eappear)
firstpart=true;
else
secondpart=true;
}
else
if(isspace(*s))
{
spaceappear=true;
}
else
if(*s=='+'||*s=='-')
{
if(spaceappear||!eappear||!(*(s-1)=='e'||*(s-1)=='E'))
return false;
}
else
return false;
s++;
}
if(!firstpart||eappear&&!secondpart)
return false;
return true;
}
};