zoukankan      html  css  js  c++  java
  • leetcode[65]Valid Number

    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!='')
        {
            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;
        }
    }
    };
  • 相关阅读:
    第一次结对作业
    第二次编程作业
    第一次编程作业
    第一次博客作业*
    个人总结
    第三次个人作业
    第二次结对作业
    第一次结对作业
    第二次个人编程作业
    第一次个人编程作业
  • 原文地址:https://www.cnblogs.com/Vae1990Silence/p/4281499.html
Copyright © 2011-2022 走看看