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

    Validate if a given string can be interpreted as a decimal number.

    Some examples:
    "0" => true
    " 0.1 " => true
    "abc" => false
    "1 a" => false
    "2e10" => true
    " -90e3   " => true
    " 1e" => false
    "e3" => false
    " 6e-1" => true
    " 99e2.5 " => false
    "53.5e93" => true
    " --6 " => false
    "-+3" => false
    "95a54e53" => false

    Note: It is intended for the problem statement to be ambiguous. You should gather all requirements up front before implementing one. However, here is a list of characters that can be in a valid decimal number:

    • Numbers 0-9
    • Exponent - "e"
    • Positive/negative sign - "+"/"-"
    • Decimal point - "."

    Of course, the context of these characters also matters in the input.

    Update (2015-02-10):
    The signature of the C++ function had been updated. If you still see your function signature accepts a const char * argument, please click the reload button to reset your code definition.

     AC code:
    class Solution {
    public:
        bool isNumber(string s) {
            int i = 0;
            int n_nm = 0, n_pt = 0;
            
            for ( ; s[i] == ' '; i++) {}
            if (s[i] == '-' || s[i] == '+') i++;
            
            for ( ; (s[i] <= '9' && s[i] >= '0') || s[i] == '.'; ++i) {
                if (s[i] == '.')
                    n_pt++;
                else 
                    n_nm++;
            }
            if (n_nm < 1 || n_pt > 1) return false;
            
            if (s[i] == 'e') {
                i++;
                if (s[i] == '-' || s[i] == '+') i++;
                
                n_nm = 0;
    
                for ( ; s[i] <= '9' && s[i] >= '0'; ++i) {
                        n_nm++;
                }
                if (n_nm < 1) return false;
            }
                
            for ( ; s[i] == ' '; i++) {}
            return s[i] == 0;
        }
    };
    

    Runtime: 16 ms, faster than 76.66% of C++ online submissions for Valid Number.  

    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    highcharts
    iCheck
    MdiContainer
    wms-ssv数据字典
    hibernate 返回自定义对象
    XmlSerialize
    Db
    python groupby
    pom resource配置
    FastReport打印table
  • 原文地址:https://www.cnblogs.com/h-hkai/p/9826354.html
Copyright © 2011-2022 走看看