博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
边工作边刷题:70天一遍leetcode: day 27-1
阅读量:4571 次
发布时间:2019-06-08

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

Valid Number

要点:用几个boolean flag来区分状态:spa,exp,dot,num。为了简化程序,单向pass开始的空格和’+’/’-’。这些boolean状态flag只是在之后的main loop里标记状态

  • spa:用来标记空格不在字符中出现,所以当遇到空格并且spa为False,ok,如果非空格但是spa为True,false。所以这里用if … elif ...来处理
  • num: 一旦在num里,除了dot不能出现其他字符。另外num用来作为返回值和排除exp没有number的情况(“.”)
  • exp:一旦在exp里,不能再出现dot,
  • dot:exp和dot有一点不同,前者必须在num里,后者不用
  • 再次出现’+’/‘-’:不一定是第二次,意思是在main loop里num之后,那么左边必须为exp
class Solution(object):    def isNumber(self, s):        """        :type s: str        :rtype: bool        """        num = False        exp = False        dot = False        spa = False                i = 0        while i
=0: num = True elif s[i]=='.': if dot or exp: return False dot = True elif s[i]=='e': if not num or exp: return False exp = True num = False elif s[i]=='+' or s[i]=='-': if s[i-1]!='e': return False else: return False i+=1 return num

转载于:https://www.cnblogs.com/absolute/p/5678072.html

你可能感兴趣的文章
通过前端上传图片等文件的方法
查看>>
在 OC 中调用 Swift 代码
查看>>
Android仿腾讯应用宝 应用市场,下载界面, 有了进展button
查看>>
安卓|五大逆向软件下载
查看>>
5 OK6410裸机调试(不用Jlink)
查看>>
“模板”学习笔记(5)-----编译器在处理函数模板的时候都干了啥
查看>>
教你用shell写CGI程序
查看>>
窗口 对话框 Pop Dialog 示例
查看>>
ubuntu(centos) server安装vmware tools
查看>>
数据结构之最大不重复串
查看>>
为什么要配置sdk-tools/platform-toools?
查看>>
自己动手开发更好用的markdown编辑器-07(扩展语法)
查看>>
maven dependency:tree中反斜杠的含义
查看>>
队列的循环队列
查看>>
程序中的日期格式
查看>>
大众点评CAT错误总结以及解决思路
查看>>
从0开始学爬虫3之xpath的介绍和使用
查看>>
vim下正则表达式的非贪婪匹配
查看>>
一个python的计算熵(entropy)的函数
查看>>
spring源码学习——spring整体架构和设计理念
查看>>