劍指offer53-表示數值的字串
阿新 • • 發佈:2020-12-09
題目描述
請實現一個函式用來判斷字串是否表示數值(包括整數和小數)。例如,字串"+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