您的位置:首页 > 其它

[Leetcode] Valid Number

2014-04-29 16:27 323 查看
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.

就看能不能将各种情况都考虑周到了。

class Solution {
public:
bool isNumber(const char *s) {
while (*s == ' ') ++s;
while (*s == '+' || *s == '-') ++s;
bool exp = false, space = false, point = false;
bool number = false;
while (*s != '\0') {
if (isdigit(*s)) {
if (space) return false;
else number = true;
} else if (*s == '.') {
if (!point && !space && !exp) {
point = true;
} else {
return false;
}
} else if (*s == 'e') {
if (!exp && number && !space) {
exp = true;
number = false;
while (*(s+1) == '+' || *(s+1) == '-') ++s;
} else {
return false;
}
} else if (*s == ' ') {
if (!space) {
space = true;
}
} else {
return false;
}
++s;
}
return number;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: