class Solution {
public:
bool isNumber(string s) {
bool is_num = false;
bool before = false;
int s_length = s.length();
int i =0;
while(i<s_length&&s[i] == ' ') i++;
if(i<s_length&&(s[i] == '+'||s[i] == '-')){
i++;
}
while(i<s_length&&s[i]>=48&&s[i]<=57) {
i++;
is_num = true;
before = true;
}
if(i<s_length&&s[i] == '.'){
is_num = false;
i++;
if(i<s_length&&s[i]>=48&&s[i]<=57){
i++;
is_num =true;
while(i<s_length&&s[i]>=48&&s[i]<=57) i++;
}
}
if(!before&&!is_num) return is_num;
is_num = true;
if(i<s_length&&s[i] == 'e'){
is_num = false;
i++;
if(i<s_length&&(s[i] == '+'||s[i] == '-'))
i++;
if(i<s_length&&s[i]>=48&&s[i]<=57){
is_num = true;
i++;
while(i<s_length&&s[i]>=48&&s[i]<=57) i++;
}
}
while(i<s_length&&s[i] == ' ') i++;
if(i<s_length) is_num = false;
return is_num;
}
};