LeetCode 65 有效數字

2021-10-21 19:36:42 字數 1821 閱讀 5664

難度:困難。

標籤:數學,字串。

這道題要考慮太多的情況,除了題目中提到的,重點注意以下情況:

"-.2"

".2"

"3."

"3.e2"

"-"

".""e232"

"232e"

"-."

""-e33""

"-232-2"

"23.3.e3"

在考慮了種種情況後,覺得應該沒問題了,竟然因為手誤導致了問題,開始將第6行的判斷條件的』-『寫成了』1』,錯誤**如下:

if

(s[0]==

'+'|| s[0]

=='1'

)

導致用例【3e1】沒有通過,吐了。

然後改了這個手誤後,直接通過。

正確解法:

class

solution

int k =0;

for(

;i < n; i++

)return k !=0;

}bool

isdigit

(char c)

public

:bool

isnumber

(string s)

elseif(

(s[i]

=='e'

|| s[i]

=='e'

)&& i !=0)

else

if(s[i]

=='.'

&&!hasdot)

else

if(n ==1)

return

false

;else

if(i ==0&&

!isdigit

(s[i +1]

))return

false

;else

if(i == n -1&&

!isdigit

(s[i -1]

))return

false

; hasdot =

true;}

elseif(

!isdigit

(s[i]))

}return

true;}

};

2021.06.17重刷,一次通過

正確解法:

class

solution

return

true;}

bool

isnum

(char c)

public

:bool

isnumber

(string s)

bool dotflag =

true

, signflag =

true

;for

(int i =

0; i < n; i++

)else

if(s[i]

=='.'

&& dotflag)

else

if(i == n -1)

else

}elseif(

(s[i]

=='+'

|| s[i]

=='-'

)&& signflag)

elseif(

!isnum

(s[i]))

}return

true;}

};

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 ...

leetcode65 有效數字

作弊法 利用try except機制,直接判斷是否可以通過float 函式 class solution def isnumber self,s str bool try float s return true except return false 面試的時候這麼寫基本byebye 設定幾個布林值...