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;
}
};
浙公网安备 33010602011771号