zoukankan      html  css  js  c++  java
  • 65. Valid Number *HARD*

    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.

    bool isNumber(string s) {
        int l = s.length(), i;
        bool flag=0, point[2]={0,0}, num[2]={0,0};
        for(i=0; s[i] == ' '; i++);
        for(; i<l; i++)
        {
            if(s[i] == ' ')
                break;
            if(s[i] == '-' || s[i] == '+')
            {
                if(num[flag] == true || point[flag] == true)
                    return false;
            }
            else if(isdigit(s[i]))
                num[flag] = true;
            else if(s[i] == '.')
            {
                if(point[flag] || flag == true)
                    return false;
                point[flag] = true;
            }
            else if(s[i] == 'e')
            {
                if(flag == 1)
                    return false;
                if(num[0] == false)
                    return false;
                flag = 1;
            }
            else
                return false;
        }
        for(;i<l;i++)
        {
            if(s[i]!=' ')
                return false;
        }
        if(!num[0] && !num[1])
            return false;
        if(flag && !num[1])
            return false;
        return true;
    }

    测试用例:

    "0e" -- false

    ". 1" -- false

    "-1." -- true

    ".-4" -- false

    "+.8" -- true

    "6e6.5" -- false

  • 相关阅读:
    实验3
    实验2
    实验1
    阿里云服务器搭建Halo博客系统
    移动开发技术(三)
    在服务器上部署Anki-Server
    软件测试技术(二)
    函数相关定理
    移动开发技术(一)
    高等数学函数求导
  • 原文地址:https://www.cnblogs.com/argenbarbie/p/5270914.html
Copyright © 2011-2022 走看看