码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode[65]Valid Number

时间:2015-02-09 15:30:36      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:

Validate if a given string is numeric.

Some examples:
"0" => true
" 0.1 " => true
"abc" => false
"1 a" => false
"2e10" => true

Note: It is intended for the problem statement to be ambiguous. You should gather all requirements up front before implementing one.

click to show spoilers.

Update (2014-12-06):
New test cases had been added. Thanks unfounder‘s contribution.

class Solution {
public:
bool isNumber(const char *s) 
{
    if(s==NULL)return  false;
    while(*s== )s++;
    if(*s==+||*s==-) s++;
    bool  dotAppear=false;
    bool  spaceAppear=false;    
    bool  eAppear=false;
    bool  firstAppear=false;
    bool  secondAppear=false;

    while(*s!=\0)
    {
        if (*s== )
        {
            spaceAppear=true;
        }
        else if(spaceAppear)
        {
            return false;
        }
        else if (*s==.)
        {
            if (dotAppear||eAppear||spaceAppear)
            {
                return false;
            } 
            else
            {
                dotAppear=true;
            }
        }
        else if (*s==e||*s==E)
        {
            if (eAppear||!firstAppear||spaceAppear)
            {
                return false;
            } 
            else
            {
                eAppear=true;
            }
        } 
        else if(*s==+||*s==-)
        {
            if (!(*(s-1)==e||*(s-1)==E)||spaceAppear)
            {
                return false;
            } 
        }
        else if (*s>=0&&*s<=9)
        {
            if (spaceAppear)
            {
                return false;
            } 
            else if (!eAppear)
            {
                firstAppear=true;
            } 
            else
            {
                secondAppear=true;
            }
        } 
        else
        {
            return false;
        }
        s++;
    }
    if (!firstAppear)
    {
        return false;
    } 
    else if (eAppear&&!secondAppear)
    {
        return false;
    } 
    else
    {
        return true;
    }
}
};

 

leetcode[65]Valid Number

标签:

原文地址:http://www.cnblogs.com/Vae98Scilence/p/4281499.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!