zoukankan      html  css  js  c++  java
  • [LeetCode] 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.
    » Solve this problem



        bool isNumber(const char *s) {
           
            while(*s == ' ') s++;
            bool isNum = false;
            bool hasOp = false;
            bool hasExp = false;
            bool hasDot = false;
            bool hasNum = false;
            for(; *s!='\0'; s++)
            {
                if(*s == '+' || *s == '-')
                {
                    if(!hasOp && !hasNum)
                    {
                        hasOp=true;
                        isNum = false;
                        continue;
                    }
                    else
                    {
                        isNum = false;
                        break;
                    }
                }
               
                if(*s == '.')
                {
                   
                    if(!hasDot)
                    {
                        hasDot=true;              
                        hasNum=true;
                        if(hasExp)
                        {
                            isNum = false;
                            break;
                        }
                        continue;
                    }
                    else
                    {
                        isNum = false;
                        break;
                    }
                }
               
                if(*s == 'e')
                {
                   
                    if(!hasExp && hasNum)
                    {
                        hasExp=true;
                        hasOp = false;
                        hasNum = false;
                     
                        isNum = false;
                        continue;
                    }
                    else
                    {
                        isNum = false;
                        break;
                    }
                }
               
                if(*s<='9' && *s>='0')
                {
                    isNum = true;
                    hasNum = true;
                    continue;
                }
                else
                {
                    if(*s != ' ')
                    {
                        isNum = false;
                        break;
                    }
                    while(*s == ' ') s++;
                    if(*s !='\0')
                    {
                        isNum = false;
                       
                    }
                    break;
                }
            }
           
            return isNum;      
        }
  • 相关阅读:
    此时的我,就像一个炸药包...
    我焦躁,并不只是心里承受,还是因为我上面担着。
    我们应该顶住压力
    git初识后的一些问题
    我近期应该找个机会休整一下了
    权限管理设计的一些感悟
    一个无用的功能
    关于IE8与FireFox中,button内字体总是有一个不垂直居中的问题
    Android之EditText文本框监听事件
    Android流量统计TrafficStats类的使用
  • 原文地址:https://www.cnblogs.com/codingtmd/p/5078873.html
Copyright © 2011-2022 走看看