验证给定的字符串是否为数字。

来源:互联网 发布:java传感器数据 编辑:程序博客网 时间:2024/06/08 11:46

本题源自leetcode  65

思路:1 先去空格,在去除符号

2 判断小数点的位数和小数点前面是否有数

3 如果是科学技术,则要看e后是否有数

代码:

bool isNumber(string s) {        int n = s.length();        if(n == 0)            return false;        int i = 0;        while(s[i] == ' ')             i++;        if(s[i] == '+' || s[i] == '-')            i++;        int numOfP = 0,numOfDig = 0;        for(;s[i] >= '0' && s[i] <='9' || s[i] == '.';i++){            if(s[i] == '.')                numOfP++;            else                numOfDig++;        }        if(numOfP > 1 || numOfDig < 1)            return false;        if(s[i] == 'e'){            i++;            if(s[i] == '+' || s[i] == '-')                i++;            numOfDig = 0;            for(; s[i] >= '0' && s[i] <= '9'; i++)                numOfDig++;            if(numOfDig < 1)                return false;        }        for(; s[i] == ' ';i++);        return s[i] == '\0';    }


原创粉丝点击