class Solution(object):
def isDigital(self,s):
if len(s)==0:
return False
if s[0]=='-' or s[0]=='+':
s=s[1:]
return self.pureNum(s)
def isFloat(self,s):
if len(s)==0:
return False
if s[0]=='-' or s[0]=='+':
s=s[1:]
if len(s)==0:
return False
ss=s.split('.')
if len(ss)>2:
return False
if len(ss)==2:
if len(ss[1])==0:
return self.pureNum(ss[0])
if len(ss[0])==0:
return self.pureNum(ss[1])
return self.pureNum(ss[0]) and self.pureNum(ss[1])
else:
return self.isDigital(ss[0])
return True
def pureNum(self, s):
if len(s)==0:
return False
for v in s:
if v<'0' or v>'9':
return False
return True
def isNumber(self, s):
"""
:type s: str
:rtype: bool
"""
s=s.strip()
if len(s)==0:
return False
ss=s.split(' ')
if len(ss)>1:
return False
ss=s.split('e')
if len(ss)>2:
return False
if len(ss)==2:
if not self.isDigital(ss[1]):
return False
return self.isFloat(ss[0])