题目描述
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串”+100″,”5e2″,”-123″,”3.1416″和”-1E-16″都表示数值。 但是”12e”,”1a3.14″,”1.2.3″,”+-5″和”12e+4.3″都不是。
class Solution:
# s字符串
def isNumeric(self, s):
# write code here
sign, point, hasE = False, False, False
for i in range(len(s)):
if s[i].lower() == 'e':
if hasE: return False
if i == len(s)-1: return False
hasE = True
elif s[i] == '+' or s[i] == '-':
if sign and s[i-1].lower() != 'e': return False
if not sign and i > 0 and s[i-1].lower() != 'e': return False
sign = True
elif s[i] == '.':
if hasE or point: return False
point = True
elif ord(s[i]) < ord('0') or ord(s[i]) > ord('9'):
return False
return True