Leetcode 65 有效數字 C

2021-10-07 04:19:19 字數 1544 閱讀 4839

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

例如:「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"

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

小數點 - "."

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

根據有效數字

[±]?([num]+(.[num]*)?|.[num]+)(e[±]?[num]+)?

進行模擬

bool

isnumber

(string s)

i=0;

while

(s[i]

==' '

&& i(i(s[i]

=='+'

|| s[i]

=='-'

)) i++;if

(i == length)

return

false

;int flag=1;

if(s[i]

=='e'

)return

false

;else

if(s[i]

=='.')if

(i == length ||

(s[i]

<

'0'|| s[i]

>

'9')

)return

false

;for

(; i)else

if(s[i+1]

>=

'0'&& s[i+1]

<=

'9')

continue

;else

if(s[i+1]

==' '

|| s[i+1]

=='e'

) i++;}

if(s[i]

=='e')if

(i==length)

break;}

if(s[i]

==' ')if

(s[i]

<

'0'|| s[i]

>

'9')

return

false;}

return

true

;}

Leetcode 65有效數字C

思路 參考 所有的字元可以分為六大類,空格,符號,數字,小數點,自然底數和其他字元,我們需要五個標誌變數,num,dot,exp,sign分別表示數字,小數點,自然底數和符號是否出現,numaftere表示自然底數後面是否有數字,那麼我們分別來看各種情況 最後返回num numaftere即可。cl...

leetcode 65 有效數字

不知道這道題對於演算法有什麼作用,而且每個人可能理解有效的數字都不一樣,怎麼能證明考慮周到不周到呢,不斷的提交就完了 下面的是我認為肯定不合格但是卻是合格的一些代表 45.e 67 true 1 true 1.true 0123 true bool isnumber std string s if ...

leetcode65 有效數字

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