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

    https://leetcode.com/problems/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.

    代码:

    class Solution {
    public:
        bool isNumber(string s) {
            bool num = false, numAfterE = true, dot = false, exp = false, sign = false;
            int n = s.size();
            for (int i = 0; i < n; ++i) {
                if (s[i] == ' ') {
                    if (i < n - 1 && s[i + 1] != ' ' && (num || dot || exp || sign)) return false;
                } else if (s[i] == '+' || s[i] == '-') {
                    if (i > 0 && s[i - 1] != 'e' && s[i - 1] != ' ') return false;
                    sign = true;
                } else if (s[i] >= '0' && s[i] <= '9') {
                    num = true;
                    numAfterE = true;
                } else if (s[i] == '.') {
                    if (dot || exp) return false;
                    dot = true;
                } else if (s[i] == 'e') {
                    if (exp || !num) return false;
                    exp = true;
                    numAfterE = false;
                } else return false;
            }
            return num && numAfterE;
        }
    };
    

       这道题 杀了我吧

  • 相关阅读:
    关于c#中的委托和事件
    Unity3d中默认函数调用顺序(MonoBehaviour)
    u3d 摄像机详解
    u3d中的坐标系
    u3d中的向量 vector3 vector2
    u3d中的INput
    C#构造函数
    解析C#中[],List,Array,ArrayList的区别及应用
    Mybatis(七) mybatis的逆向工程的配置详解
    Mybatis(六) Spring整合mybatis
  • 原文地址:https://www.cnblogs.com/zlrrrr/p/10686180.html
Copyright © 2011-2022 走看看