Leetcode 劍指 Offer 20. 表示數值的字串
阿新 • • 發佈:2021-02-15
Leetcode 劍指 Offer 20. 表示數值的字串
題目
請實現一個函式用來判斷字串是否表示數值(包括整數和小數)。例如,字串"+100"、"5e2"、"-123"、"3.1416"、"-1E-16"、"0123"都表示數值,但"12e"、"1a3.14"、"1.2.3"、"+-5"及"12e+5.4"都不是。
思路
- 像這樣的字串題目, 一般有如下的思路 —— 直接自己造輪子(效率太低), 正則表示式(此題如果要寫re則很複雜), 特殊做法
- 這道題目問的是字串能否表示整數和小數, 換個角度來看, 就是在問字串能否轉化成整數和小數, 即字串能否轉化成浮點型
- 所以如果轉化成float不出異常就是True, 如果出現異常就是False
程式碼 —— python
class Solution:
def isNumber(self, s: str) -> bool:
try:
result = float(s)
return True
except:
return False