美文网首页一起来刷算法题
表示数值的字符串

表示数值的字符串

作者: cherryleechen | 来源:发表于2019-05-07 13:10 被阅读0次

    时间限制:1秒 空间限制:32768K

    题目描述

    请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。

    我的代码

    class Solution {
    public:
        bool isNumeric(char* string)
        {
            int decimal=0,hasE=0;
            for(int i=0;string[i]!='\0';i++){
                char cur=string[i];
                if(cur=='e' || cur=='E'){
                    if(i==strlen(string)-1)
                        return false;
                    if(hasE)
                        return false;
                    hasE=1;
                }
                else if(cur=='.'){
                    if(hasE || decimal)
                        return false;
                    decimal=1;
                }
                else if(cur=='+' || cur=='-'){
                    if(i>0&&string[i-1]!='e'&&string[i-1]!='E')
                        return false;
                }
                else if(cur<'0' || cur>'9')
                    return false;
            }
            return true;
        }
    };
    

    运行时间:4ms
    占用内存:460k

    相关文章

      网友评论

        本文标题:表示数值的字符串

        本文链接:https://www.haomeiwen.com/subject/nyckoqtx.html