您的位置:首页 > 其它

Valid Number 判断一个数字是否有效

2014-01-19 21:14 274 查看
class Solution {

public:

bool isNumber(const char *s) {

if(s==NULL)

return false;

while(isspace(*s))

s++;

if(*s=='+'||*s=='-')

s++;

bool eAppear=false;

bool dotAppear=false;

bool firstPart=false;

bool secondPart=false;

bool spaceAppear=false;

while(*s!='\0')

{

if(*s=='.')

{

if(dotAppear||eAppear||spaceAppear)

return false;

else

dotAppear=true;

}

else if(*s=='e'||*s=='E')

{

if(eAppear||!firstPart||spaceAppear)

return false;

else eAppear=true;

}

else if(isdigit(*s))

{

if(spaceAppear)

return false;

if(!eAppear)

firstPart=true;

else

secondPart=true;

}

else if(*s=='+'||*s=='-')

{

if(spaceAppear)

return false;

if(!(*(s-1)=='e'||*(s-1)=='E'))

return false;

}

else if(isspace(*s))

spaceAppear=true;

else return false;

s++;

}

if(!firstPart)

return false;

else if(eAppear&&!secondPart)

return false;

else return true;

}

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: