1. 程式人生 > 實用技巧 >劍指offer53-表示數值的字串

劍指offer53-表示數值的字串

題目描述

請實現一個函式用來判斷字串是否表示數值(包括整數和小數)。例如,字串"+100","5e2","-123","3.1416"和"-1E-16"都表示數值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。

示例

輸入 "123.45e+6"

返回值 true

輸入 "1.2.3"

返回值 false

程式碼

方法一:正則表示式

(+或-最多出現一次)(數字出現任意次)(小數點以及小數部分--整體最多出現一次){(eE二選一)(+或-最多出現一次)(數字出現至少一次)--整體最多出現一次}

# -*- coding:utf-8 -*-
import re class Solution: # s字串 def isNumeric(self, s): # write code here return re.match(r"^[\+-]?[0-9]*(\.[0-9]+)?([eE][\+-]?[0-9]+)?$", s)

方法二:投機取巧

# -*- coding:utf-8 -*-
class Solution:
    # s字串
    def isNumeric(self, s):
        # write code here
        try:
            p
=float(s) return True except: return False