AcWing 31. 表示数值的字符串
原题链接
困难
作者:
月涌江流
,
2019-03-17 22:29:55
,
所有人可见
,
阅读 1338
Python 代码
class Solution(object):
def isNumber(self, s):
if len(s) == 0 :
return False
if s[0] == '-' or s[0] == '+':
s = s[1:]
if len(s) == 0 or s[0] == '.' and len(s) == 1 :
return False
dot = 0 ; e = 0 ;i = 0
while(i < len(s)):
if s[i] >= '0' and s[i] <= '9':
pass
elif s[i] == '.':
dot +=1
if e or dot > 1:
return False
elif s[i] == 'e' or s[i] == 'E':
e +=1
if (not i) or (i + 1 == len(s)) or (e > 1) or (i == 1 and s[0] == '.'):
return False
if s[i + 1] == '+' or s[i + 1] == '-':
if i + 2 == len(s):
return False
else: i +=1
else:
return False
i += 1
return True