本文共 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/