LeetCode: Valid Number

来源:互联网 发布:网络监控能看到密码吗 编辑:程序博客网 时间:2024/05/08 18:11

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.

class Solution {public:    bool isNum(const char *&s, bool flag)    {        bool result = false;        bool neg = false;        if (*s != '\0' )        {            if (*s == '-')            {                neg = true;                ++s;            }            else if (*s == '+')                ++s;        }                bool dot = false;        while(*s != '\0')        {            if (*s >= '0' && *s <= '9')            {                result = true;                ++s;            }            else if (*s == '.')            {                // e之后的数字不能为小数                if (flag)                    return false;                if (dot == false)                {                    dot = true;                    ++s;                }                else                    return false;            }            else if (*s == 'e' || *s == ' ')            {                return result;            }            else                return false;        }        return result;    }        bool isNumber(const char *s) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        if (s == NULL) return false;        bool neg = false;        bool result = false;        // 前置空白        while(*s != '\0' && *s == ' ')            ++s;                // e之前的数字        result = isNum(s, false);        if (result == false)            return false;                // e之后        if (*s == 'e')        {            ++s;            result = isNum(s, true);            if (result == false)                return false;        }                // 后置空白        while(*s != '\0' && *s == ' ')            ++s;        if (*s == '\0')            return true;        else            return false;    }};


原创粉丝点击