码迷,mamicode.com
首页 > 其他好文 > 详细

65. Valid Number

时间:2018-12-18 19:48:24      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:error   小数   ret   str   col   整数   erro   方法   code   

很无聊的一道题目歧义也很多

判断一个字符串是否能够用十进制数表示,下面是一堆范例

"0" => true
" 0.1 " => true
"abc" => false
"1 a" => false
"2e10" => true
" -90e3   " => true
" 1e" => false
"e3" => false
" 6e-1" => true
" 99e2.5 " => false
"53.5e93" => true
" --6 " => false
"-+3" => false
"95a54e53" => false

总结一下规则,一个数字分为底数部分和指数部分

底数部分的开头符号位没有或者为1位,数字部分纯数字或者带小数点,有整数部分(整数部分不为空)小数点后可以无数字,没有整数部分小数点后必须有数字

e之后只能为整数

 

想到的方法有字符串检查,分别用标识符代表小数点和e的个数,然后进行字符串的检查;正则表达;

下面是我的正则写法

class Solution:
    def isNumber(self, s):
        """
        :type s: str
        :rtype: bool
        """
        if re.match(r\s*(\+|-)?((\d+\.?\d*)|(\.\d+))(e(\+|-)?(\d)+)?\s*$, s):
            return True
        return False

还看见一种写法,虽然是对的但是还是不要这样做:

class Solution(object):
    def isNumber(self, s):
        try:
            float(s)
        except ValueError:
            return False
        return True

 

65. Valid Number

标签:error   小数   ret   str   col   整数   erro   方法   code   

原文地址:https://www.cnblogs.com/mangmangbiluo/p/10138688.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!