leetcode8:Valid Number
Validate if a given string is numeric.
Some examples:
"0"
=> true
"
0.1 "
=> true
"abc"
=> false
"1
a"
=> false
"2e10"
=> true
Note: It is intended for the problem statement to be ambiguous. You should gather all requirements up front before implementing one.
{key points: 1.think every possible condition.2. it's a trick that putting space check in front of if..else.. chain.
}
class Solution { public: bool isNumber(const char *s) { // Start typing your C/C++ solution below // DO NOT write int main() function bool num = false; bool deci = false; bool exp = false; bool space = false; while( *s!='\0' && *s==' ') { s++; } if( *s=='+' || *s=='-') { s++; } while(*s!='\0') { if(*s == ' ') { space = true; } else if(space == true) { return false; } else if(*s>='0' && *s<='9') { num = true; } else if( *s == '.') { if( deci ==true || exp == true) { return false; } else { deci = true; #num = false; } } else if(*s == 'e') { if(exp==true || num==false) { return false; } else { if( *(s+1) == '+' || *(s+1) == '-') { ++s; } exp = true; num = false; } } else { return false; } ++s; } return num; } };