Validate if a given string is numeric.
Some examples:
"0" => true
" 0.1 " => true
"abc" => false
"1 a" => false
"2e10" => true
主要就是判断一个字符串是不是一个数字,这个题目不是很难,主要是要把所有的情况理清楚
首先有一些情况是允许的
1. 前后空格
2. "+","-"号
3. "1.", ".34","+.1"也被认为是正确的
然后就是常规的情况
比如出现两个 e 或者E 或者两个小数点是不对的,比如E后面没有数字是不对的
?
class Solution {
public:
bool isNumber(const char *s) {
if(s==NULL)
return false;
int i=0;
int j=strlen(s)-1;
while(s[i]==' ') i++;
while(j>=0 && s[j]==' ') j--;
if(i>j)
return false;
string str(s+i,j-i+1); //<初始化处理之后的字符串
int e;
bool hasE = false;
for(int i=0;i
'9')
return false;
return true;
}
};
?
?