タイトル説明
文字列が(整数および端数を含む)の値を表しているかどうかを決定するために使用される機能を実現します。例えば、文字列 "100"、 "5E2"、 " - 123"、 "3.1416" および "-1E-16" を示す値。しかし、 "12E"、 "1a3.14"、 "1.2.3"、 "+ - 5" と "12E + 4.3" もありません。
思考
以下のような国境に、注意を払うと言ってこれは何もありません
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