博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer——表示数值的字符串
阅读量:4108 次
发布时间:2019-05-25

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

题目描述

请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。


class Solution:    def isNumeric(self , s):        # write code here        n = False # 观察数字,必须有数字   '0'<= n <='9'        e = False # 观察字符e,前后必须有数字,只能出现0或1次        d = False #观察字符小数点,只能出现0或1次,不能在e后面出现        l = len(s) #字符长度        for i in range(l):            #1、判断一下正负号,只能出现在首位和e后面一位            if s[i] in ('+','-') :                if i != 0 and s[i-1] not in ('e','E'):                    return False            #2、判断小数点,只能出现0或1次,不能在e后面出现,如果不是,返回False            elif s[i] == '.':                if e or d:                    return False                d = True            #3、判断是否出现过数字            elif '0'<=s[i]<='9':                n = True            #4、判断字符e,前后必须有数字,只能出现0或1次,如果不是,返回False            elif s[i] in ('e','E'):                if e or not n:                    return False                e = True                n = False            else:                return False        return n

 

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

你可能感兴趣的文章
C语言内存检测
查看>>
Linux epoll模型
查看>>
Linux select TCP并发服务器与客户端编程
查看>>
Linux系统编程——线程池
查看>>
Linux系统编程——线程池
查看>>
yfan.qiu linux硬链接与软链接
查看>>
Linux C++线程池实例
查看>>
shared_ptr简介以及常见问题
查看>>
c++11 你需要知道这些就够了
查看>>
c++11 你需要知道这些就够了
查看>>
shared_ptr的一些尴尬
查看>>
C++总结8——shared_ptr和weak_ptr智能指针
查看>>
c++写时拷贝1
查看>>
C++ 写时拷贝 2
查看>>
Linux网络编程---I/O复用模型之poll
查看>>
Java NIO详解
查看>>
Statement与PreparedStatement区别
查看>>
Tomcat配置数据源步骤以及使用JNDI
查看>>
before start of result set 是什么错误
查看>>
(正则表达式)表单验证
查看>>