65有效數字

2021-10-05 16:05:05 字數 1517 閱讀 8697

驗證給定的字串是否可以解釋為十進位制數字。

例如:"0" => true

" 0.1 " => true

"abc" => false

"1 a" => false

"2e10" => true

" -90e3   " => true

" 1e" => false

"e3" => false

" 6e-1" => true

" 99e2.5 " => false

"53.5e93" => true

" --6 " => false

"-+3" => false

"95a54e53" => false

說明: 我們有意將問題陳述地比較模糊。在實現**之前,你應當事先思考所有可能的情況。這裡給出乙份可能存在於有效十進位制數字中的字元列表:

數字 0-9

指數 - "e"

正/負號 - "+"/"-"

小數點 - "."

當然,在輸入中,這些字元的上下文也很重要。

更新於 2015-02-10:

c++函式的形式已經更新了。如果你仍然看見你的函式接收 const char * 型別的引數,過載按鈕重置你的**。

//自動機 狀態轉移圖 條件 狀態太多太容易出錯了

//注意點

//1 table初始化時括號的位置

//2 返回true的結果可能是多個,不唯一

//3 前後空格情況:" 1.2e-3 " true

//4 小數點前後有沒有數字情況: " -.2e-3 " true " +1.e-3 " true ".e-3 " false

//5 用int代替string表示狀態名稱應該可以更快

//乙個究極完整的數字裡面的可以分為 sa.becs or sa.ecs or s.becs

//s: 連續空格

//a:可帶符號數

//b:無符號數字

//c:可帶符號數

class solution },

},},

},},

},},

},},

},},

};

public:

bool isnumber(string s)

int getindex(char c){

if(isdigit(c))return 0;

if(c=='+'||c=='-')return 1;

if(c=='.')return 2;

if(c=='e')return 3;

if(c==' ')return 4;

return 5;

//方法二:一遍掃瞄 正規表示式

//去頭空格

//有無符號

//連續數字.e

//.連續數字e

//連續數字.連續數字e

//有無符號

//連續數字

//去尾空格

65 有效數字

驗證給定的字串是否為數字。例如 0 true 0.1 true abc false 1 a false 2e10 true 說明 我們有意將問題陳述地比較模糊。在實現 之前,你應當事先思考所有可能的情況。更新於 2015 02 10 c 函式的形式已經更新了。如果你仍然看見你的函式接收 const ...

65 有效數字

題目描述 有效數字 按順序 可以分成以下幾個部分 乙個小數或者整數 可選 乙個 e 或 e 後面跟著乙個整數 小數 按順序 可以分成以下幾個部分 可選 乙個符號字元 或 下述格式之一 至少一位數字,後面跟著乙個點 至少一位數字,後面跟著乙個點 後面再跟著至少一位數字 乙個點 後面跟著至少一位數字 整...

65 有效數字

有效數字 按順序 可以分成以下幾個部分 乙個 小數 或者 整數 可選 乙個 e 或 e 後面跟著乙個 整數 小數 按順序 可以分成以下幾個部分 可選 乙個符號字元 或 下述格式之一 至少一位數字,後面跟著乙個點 至少一位數字,後面跟著乙個點 後面再跟著至少一位數字 乙個點 後面跟著至少一位數字 整數...