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;
}
};