[leetcode] Valid Number
2013-08-14 19:18
267 查看
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) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int i=0;
bool dotappeared=false;
bool numberappeared=false;
bool eappeared=false;
for( ; s[i]==' ' ; i++);
if(s[i]=='+' || s[i]=='-')
i++;
if(s[i]=='\0')
return false;
for( ; s[i] ; i++){
switch(s[i]){
case ' ':
for( ; s[i] && s[i]==' ' ; i++);
if(s[i]!='\0')
return false;
i--;
break;
case '.':
if(dotappeared)
return false;
if(eappeared)
return false;
dotappeared=true;
break;
case 'e':
case 'E':
if(!numberappeared || eappeared)
return false;
eappeared=true;
dotappeared=false;
numberappeared=false;
if(s[i+1]=='-' || s[i+1]=='+')
i++;
break;
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
numberappeared=true;
break;
default:
return false;
}
}
if(!numberappeared)
return false;
return true;
}
};
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) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
int i=0;
bool dotappeared=false;
bool numberappeared=false;
bool eappeared=false;
for( ; s[i]==' ' ; i++);
if(s[i]=='+' || s[i]=='-')
i++;
if(s[i]=='\0')
return false;
for( ; s[i] ; i++){
switch(s[i]){
case ' ':
for( ; s[i] && s[i]==' ' ; i++);
if(s[i]!='\0')
return false;
i--;
break;
case '.':
if(dotappeared)
return false;
if(eappeared)
return false;
dotappeared=true;
break;
case 'e':
case 'E':
if(!numberappeared || eappeared)
return false;
eappeared=true;
dotappeared=false;
numberappeared=false;
if(s[i+1]=='-' || s[i+1]=='+')
i++;
break;
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
numberappeared=true;
break;
default:
return false;
}
}
if(!numberappeared)
return false;
return true;
}
};
相关文章推荐
- [leetcode]Valid Number
- Leetcode--Valid Number
- leetcode 65 Valid Number
- LeetCode 86 Valid Number
- LeetCode-Valid Number
- [LeetCode]65 Valid Number
- [LeetCode] Valid Number 验证数字
- LeetCode——Valid Number
- LeetCode – Refresh – Valid Number
- Leetcode: Valid Number
- [leetcode] Valid Number
- Leetcode-Valid Number
- LeetCode算法题目: Valid Number
- leetCode_Valid Number
- leetcode 065 —— Valid Number
- Leetcode[easy] - Valid Number -待续~~~坑坑的题目
- LeetCode-Valid Number
- [LeetCode]Valid Number
- 【leetcode】Valid Number
- LeetCode65——Valid Number