标签:
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.
Update (2014-12-06):
New test cases had been added. Thanks unfounder‘s contribution.
按上面的规则便行。
#include <iostream> using namespace std; class Solution { public: bool isNumber(const char *s) { int idx =0; for(;s[idx]==‘ ‘;idx++); if(s[idx]==‘-‘||s[idx]==‘+‘) idx++; int Point=0,Num=0; for(;(s[idx]>=‘0‘&&s[idx]<=‘9‘)||s[idx]==‘.‘;idx++) s[idx]==‘.‘?Point++:Num++; if(Point>1||Num<1) return false; if(s[idx]==‘e‘){ idx++; if(s[idx]==‘-‘||s[idx]==‘+‘) idx++; Num=0; for(;s[idx]>=‘0‘&&s[idx]<=‘9‘;idx++) Num++; if(Num<1) return false; } for(;s[idx]==‘ ‘;idx++); return s[idx]==‘\0‘; } }; int main() { char a[]="-e-"; Solution sol; cout<<sol.isNumber(a)<<endl; return 0; }
[LeetCode] Valid Number 确认是否为数值
标签:
原文地址:http://www.cnblogs.com/Azhu/p/4226804.html