avatar

Catalog
面试题20. 表示数值的字符串

题目描述

请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100”、”5e2”、”-123”、”3.1416”、”0123”都表示数值,但”12e”、”1a3.14”、”1.2.3”、”+-5”、”-1E-16”及”12e+5.4”都不是。

解题思路

正则表达式

代码

```python3
import re
class Solution:
    def isNumber(self, s: str) -> bool:
        if not s:
            return False
        pattern = re.compile(r"^[+-]?(\.?\d+|\d+\.\d*)([eE][+-]?(\d+))?$")
        match = pattern.match(s.strip())
        if match:
            return True
        else:
            return False
Author: kim yhow
Link: http://yoursite.com/2020/03/17/面试题20-表示数值的字符串/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Donate
  • 微信
    微信
  • 支付寶
    支付寶