Leetcode: Valid Number
2014-02-01 10:29
435 查看
Validate if a given string is numeric.
Some examples:
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) {
if (s == NULL || *s == 0) {
return false;
}
while (*s != 0) {
if (*s == ' ') {
++s;
}
else {
break;
}
}
if (*s == '+' || *s == '-') {
++s;
}
if (*s == 0) {
return false;
}
bool digit = false;
bool epow = false;
bool dot = false;
while (*s != 0) {
if (*s < '0' || *s > '9') {
if (*s == '.') {
if (dot) {
return false;
}
dot = true;
if (epow) {
return false;
}
}
else if (!digit) {
return false;
}
else if (*s == 'e') {
if (epow) {
return false;
}
epow = true;
digit = false;
if (*(s+1) == '+' || *(s+1) == '-') {
++s;
}
}
else if (*s == ' ') {
++s;
while (*s != 0 && *s == ' ') {
++s;
}
return (*s == 0);
}
else {
return false;
}
}
else {
digit = true;
}
++s;
}
return digit;
}
};
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) {
if (s == NULL || *s == 0) {
return false;
}
while (*s != 0) {
if (*s == ' ') {
++s;
}
else {
break;
}
}
if (*s == '+' || *s == '-') {
++s;
}
if (*s == 0) {
return false;
}
bool digit = false;
bool epow = false;
bool dot = false;
while (*s != 0) {
if (*s < '0' || *s > '9') {
if (*s == '.') {
if (dot) {
return false;
}
dot = true;
if (epow) {
return false;
}
}
else if (!digit) {
return false;
}
else if (*s == 'e') {
if (epow) {
return false;
}
epow = true;
digit = false;
if (*(s+1) == '+' || *(s+1) == '-') {
++s;
}
}
else if (*s == ' ') {
++s;
while (*s != 0 && *s == ' ') {
++s;
}
return (*s == 0);
}
else {
return false;
}
}
else {
digit = true;
}
++s;
}
return digit;
}
};
相关文章推荐
- [leetcode]Valid Number @ Python
- [LeetCode-Algorithms-65] "Valid Number" (2017.11.1-WEEK9)
- Valid Number leetcode
- Leetcode算法学习日志-611 Valid Triangle Number
- leetcode valid number
- LeetCode--valid-number
- Leetcode: Valid Number
- LEETCODE: Valid Number
- Valid Number leetcode java
- Leetcode Valid Number
- Leetcode Valid Number
- leetcode 50: Valid Number
- leetcode 50: Valid Number
- LeetCode Valid Number
- [LeetCode]Valid Number
- leetcode-valid number ZZ
- LeetCode之“字符串”:Valid Number(由此引发的对正则表达式的学习)
- Leetcode Valid Number
- Leetcode_valid-number(updated c++ and python version)
- Valid Number -- leetcode