題目描述:請實現乙個函式用來判斷字串是否表示數值(包括整數和小數)。例如,字串"+100","5e2","-123","3.1416"和"-1e-16"都表示數值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
【分析】
表示數值的字串模式:
[sign]integral-digits[.[fractional-digits]][e|e[sign]exponential-digits]
[正負號] 0-9的數 [ . [ 0-9小數 ] ] [ e或e [ 正負號 ] 數字 ]
-8.321e-16 表示 -8.321乘以e的負16次方;
首先看第乙個字元是不是正負號,然後移動一位,是否為0-9數字,再移動一位,有小數點的在判斷小數點後0-9,然後是e/e以此檢驗。
class solution
}else if(*string=='e'||*string=='e')//沒有小數點說明為整數,直接判斷e或e
else//
temp = false;
}return temp && *string == '\0';//字串結尾『\0』
}private:
/*掃瞄數字,對於合法數字,直接跳過*/
void scandigits(char** string)
}/*判斷科學計數法表示的數值的結尾部分是否合法*/
bool i***ponential(char** string)
if(**string == '\0')
scandigits(string);
// 判斷是否結尾,如果沒有結尾,說明還有其他非法字串
return (**string == '\0') ? true : false;
}};
53 表示數值的字串
請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。正規表示式 字元集合 分組 重複 0 1 次 重複 1 n 次 重複 0 n 次 任意字元 轉...
53 表示數值的字串
題目描述 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。class solution 幾個關鍵點 1.基本邊界。string null st...
53 表示數值的字串
一 題目描述 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。二 題解 分情況討論,返回true的情況不易列舉,但符合以下6種情況必返回fal...