剑指OFFER
题目描述:设计一个函数判断是否表示数值(包含整数和小数)。如“+100”, “5e2”,“-123”, “3.146”,“-1E-16”等。
class Solution{
int i;
public:
bool parseB(string& s){
int temp = i;
while(i < s.size() && s[i] >= '0' && s[i] <= '9'){
i++;
}
return i > temp;
}
bool parseAndC(string& s){
if(s[i] == '+' || s[i] == '-'){
i++;
}
return parseB(s);
}
bool isNumeric(string& s){
if(s.size() == 0){
return false;
}
i = 0;
bool flag = parseAndC(s);
if(s[i] == '.'){
i++;
flag = flag || parseB(s);
}
if(s[i] == 'e' || s[i] == 'E'){
i++;
flag = flag && parseAndC(s);
}
return flag;
}
};