título Descrição
função utilizada para determinar se uma cadeia representa um valor (incluindo a parte inteira e fraccionada) implementar. Por exemplo, a string "100", "5E2", "- 123", "3.1416" e "-1E-16" mostra o valor. Mas "12e", "1a3.14", "1.2.3", "+ - 5" e "12e + 4.3" nenhum dos dois.
pensamento
Este nada a dizer, preste atenção para a fronteira como
class Solution:
def isNumeric(self, s):
if len(s) == 0:
return False
point = False
nums = []
for c in s:
if c =="+" or c=="-":
if len(nums)!=0 and (nums[-1]!="E" and nums[-1]!="e"):
return False
else:
nums.append(c)
elif c == "e" or c == "E":
if len(nums)==0:
return False
elif ord(nums[-1]) > ord('9') or ord(nums[-1])<ord('0'):
return False
else:
nums.append(c)
point = True
elif c == '.':
if point or len(nums) == 0:
return False
else:
point = True
nums.append(c)
elif c >'9' or c< '0':
return False
else:
nums.append(c)
if nums[-1] in ["e",'E','.','+',"-"]:
return False
return True