您的位置:首页 > 其它

[leetcode] Valid Number

2013-08-14 19:18 267 查看
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) {
// 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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: