题解 | #表示数值的字符串#

表示数值的字符串

http://www.nowcoder.com/practice/e69148f8528c4039ad89bb2546fd4ff8

# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param str string字符串 
# @return bool布尔型
#
class Solution:
    def isNumeric(self , str: str) -> bool:
        # write code here
        str=str.replace(' ', '')
        if not str:
            return False
        if str[0]=='+' or str[0]=='-':
            str=str[1:]
        str=str.replace('E', 'e')
        inx=str.find('e')
        //从e开始分成两部分
        if inx>=0:
            firstPart=str[:inx]
            secondPart=str[inx+1:]
            if len(secondPart)>0:
                if secondPart[0]=='+' or secondPart[0]=='-':
                    secondPart=secondPart[1:]
                    //左半部分可以有小数,所以看看是不是合法数字,右半部分只能是纯数字
                return self.isValidNumber(firstPart) and self.isPureNumber(secondPart)
        // 没有e就看看是不是合法数字
        return self.isValidNumber(str)
    
    //判断是不是一个合法数字
    def isValidNumber(self,str):
        inx=str.find('.') //不能用index方法,index没找到会报一个错误
        //有小数点分左右两部分,看看左右两部分是不是纯数字
        if inx>=0:
            firstPart=str[:inx]
            secondPart=str[inx+1:]
            if len(firstPart)>0 and len(secondPart)>0:
                return self.isPureNumber(firstPart) and self.isPureNumber(secondPart)
            elif len(secondPart) >0:
                return self.isPureNumber(secondPart)
            else:
                return self.isPureNumber(firstPart)
        //没有小数点就看看是不是纯数字
        return self.isPureNumber(str)
    
    //判断是不是纯数字
    def isPureNumber(self,str):
        if not str:
            return False
        for i in str:
            if i<'0' or i>'9':
                return False
        return True
全部评论

相关推荐

07-23 11:23
门头沟学院 Java
点赞 评论 收藏
分享
真三hjdlxn:这么能吹还能找不到实习啊? 市分行写TOP投行,2个月的实习写半页。
点赞 评论 收藏
分享
写不来代码的小黑:这么小的城市能有做it的公司也不容易
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-25 17:51
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务