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