博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode65. Valid Number -- 判断合法数字
阅读量:7037 次
发布时间:2019-06-28

本文共 1356 字,大约阅读时间需要 4 分钟。

描述

Validate if a given string is numeric.

Some examples:

"0" => true
" 0.1 " => true
"abc" => false
"1 a" => false
"2e10" => true

分析

该题的说明比较模糊,所以需要慢慢进行尝试来弄清楚哪些是合法的数字。整理了以下规则:

  1. 符号只能出现在最前面或者字符e后面一位
  2. ' . '只能e的前面,且只能有一个小数点
  3. e最多只能出现一次,且前面必须有数字,后面也必须有数字

所以按照数字、小数点、e和符号这四类列出规则就可以了,记住e后面必须有数字,所以需要增加一个变量numberAftereSeen

代码

class Solution:    def isNumber(self, s):        """        :type s: str        :rtype: bool        """        # 去除前后的空格        temp_s = s.strip()        numberSeen = False        pointSeen = False        eSeen = False        numberAftereSeen = True        for i in range(len(temp_s)):            if temp_s[i].isdigit():                numberSeen = True                numberAftereSeen = True            elif temp_s[i] == ".":                # 小数点前面不能出现e和小数点                if eSeen or pointSeen:                    return False                pointSeen = True            elif temp_s[i] == "e":                # e前面不能出现e,并且需要有数字                if eSeen or not numberSeen:                    return False                eSeen = True                # 保证e后面也有数字                numberAftereSeen = False            elif temp_s[i] in ["+", "-"]:                # 符号只能再0位和e后面一位                if i != 0 and temp_s[i-1] != "e":                    return False            else:                return False        return numberSeen and numberAftereSeen

转载地址:http://agnal.baihongyu.com/

你可能感兴趣的文章
转-快速编辑Shell命令行
查看>>
【中医养生门户网】注意!春分在于“生、升”,保肝促阳为重
查看>>
SQL 语句技巧--聚合函数的灵活使用
查看>>
Java调用SQL Server的存储过程详解
查看>>
springmvc - SqlSession
查看>>
Json 简介
查看>>
zip()方法对数组进行重新组合
查看>>
60-高级路由:IPv6 静态路由
查看>>
40. Combination Sum II
查看>>
关于适配这件小事的前世今生
查看>>
稳压电源中的谐振变频器的特征
查看>>
修改Centos7的网卡名称ens160、eno192改为eth0、eth1
查看>>
VC+ADO 连接ACCESS和SQL SERVER的方法
查看>>
LOGO設計價格 之 全面解說和如何選擇 【原創】
查看>>
Python介绍与特点(自学python知识整理)
查看>>
stimulsoft入门教程:报表与页面上的图表(一)
查看>>
数字货币支付时代即将来袭
查看>>
移动设备页面自适应
查看>>
Vulkan Tutorial 16 Command buffers
查看>>
【Linux】mv命令全解析
查看>>