题解 | #表示数值的字符串#

表示数值的字符串

https://www.nowcoder.com/practice/e69148f8528c4039ad89bb2546fd4ff8

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param str string字符串 
     * @return bool布尔型
     */
    int index=0;

    bool integer(string& s){
        if(index<s.length()&&(s[index]=='-'||s[index]=='+'))
            index++;
        return unsigned_integer(s);
    }

    bool unsigned_integer(string& s){
        int temp=index;
        while(index<s.length()&&(s[index]>='0'&&s[index]<='9'))
            index++;
        return index>temp;
    }

    bool isNumeric(string str) {
        // write code here
        if(str.length()==0){
            return false;
        }
        while(index<str.length()&&str[index]==' '){
            index++;
        }
        int n=str.length()-1;
        while(n>=0&&str[n]==' '){
            n--;
        }
        n++;
        if(n<index)
            return false;
        bool flag=integer(str);
        if(index<n&&str[index]=='.'){
            index++;
            flag=unsigned_integer(str)||flag;
        }
        if(index<n&&(str[index]=='e'||str[index]=='E')){
            index++;
            flag=flag&&integer(str);
        }
        return flag&&(index==n);
    }
};

#剑指OFFER#
剑指offer刷题 文章被收录于专栏

坚持!努力!学习

全部评论

相关推荐

喜欢走神的孤勇者练习时长两年半:爱华,信华,等华,黑华
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务