剑指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

 

posted @ 2020-12-09 19:58  foolangirl  阅读(44)  评论(0编辑  收藏  举报