1. 程式人生 > 其它 >Leetcode 劍指 Offer 20. 表示數值的字串

Leetcode 劍指 Offer 20. 表示數值的字串

技術標籤:劍指offerleetcode

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