class Solution {
public:
bool isNumeric(char* string)
{
if(string == NULL)
return false;
if(*string == '+' || *string == '-')
string++;
if(*string == '\0')
return false;
bool numeric = true;
scanDigital(&string);
if(*string != '\0'){
if(*string == '.'){
++string;
scanDigital(&string);
if(*string == 'e' || *string == 'E')
numeric = isExponential(&string);
}else if(*string == 'e' || *string == 'E')
numeric = isExponential(&string);
else
return false;
}
return numeric && *string == '\0';
}
void scanDigital(char** string){
while(**string != '\0' && **string >= '0' && **string <= '9')
++(*string);
}
bool isExponential(char** string){
if(**string != 'e' && **string != 'E')
return false;
++(*string);
if(**string == '+' || **string == '-')
++(*string);
if(**string == '\0')
return false;
scanDigital(string);
return (**string == '\0') ? true : false;
}
};