思想:
字符串的模式
代码:
class Solution {
private:
bool scanInteger(const string s, int& index){
if(s[index] == '+' || s[index] == '-')
++index;
return scanUnsignedInteger(s, index);
}
bool scanUnsignedInteger(const string s, int& index){
int before = index;
while(index != s.size() && s[index] >= '0' && s[index] <= '9')
index++;
return index > before;
}
public:
bool isNumber(string s) {
if(s.size() == 0)
return false;
int index = 0;
while(s[index] == ' ')
++index;
bool numeric = scanInteger(s, index);
if(s[index] == '.'){
++index;
numeric = scanUnsignedInteger(s, index) || numeric;
}
if(s[index] == 'e' || s[index] == 'E'){
++index;
numeric = numeric && scanInteger(s, index);
}
while(s[index] == ' ')
++index;
return numeric && index == s.size();
}
};