請實現乙個函式用來判斷字串是否表示數值(包括整數和小數)。例如,字串"+100","5e2","-123","3.1416"和"-1e-16"都表示數值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
思路:這題目非常繁瑣;要考慮很多種情況,記下來。
定義三個變數,dot,nume,num分別計算小數點的數目,e/e的數目,數字的數目,如果小數點出現在nume不為0之後,e出現在num為0之前,以及重點考慮e出現的時候,e之後會出現+-和數字,要考慮接下來的不能是字串的結束。最後還要計算小數點和e的個數不能大於1,大於1就返回錯誤。
容易錯的地方是判斷e之後要判斷+-,這個時候要++idx,然後判斷接下來是不是10e+,所以判斷是否是結尾符號,再次++idx。
classsolution
int idx = 0
;
if(string[0] == '
+' || string[0] == '-'
)
int dot = 0,nume = 0,num = 0
;
for(idx;idx < strlen(string);++idx)
++dot;
} else
if(string[idx] >= '
0' && string[idx] <= '9'
)
else
if(string[idx] == '
e' || string[idx] == 'e'
) ++nume;
if(string[idx + 1] == '
+' || string[idx + 1] == '-'
)
if(string[idx + 1] == '\0'
) }
else
}if(dot > 1 || nume > 1
)
return
true
; }
};
字串 表示數值的字串
題目描述 實現乙個函式用來判斷字串是否表示數值 包括整數和小數以及使用科學計數法表示的數 分析 表示數值的字串的規則有 第乙個字元只能是 以及數字 數字字元後面只能接 或 e e 小數點後面必須要有字元且只能接數字字元或 e e e e 後面必須要接字元且只能接數字字元或者 後面必須要接數字字元 b...
表示數值的字串(字串)
題目描述 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。思路 1.第乙個數為 或者為 時,跳過。2.對於小數點 小數點只能出現一次 小數點不...
字串 表示數值的字串
此題出自牛客網的劍指offer專題 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。思路一 直接正規表示式擼起 實現 如下 public cl...