プランを受賞 - 数を表す文字列を

タイトル説明

文字列が(整数および端数を含む)の値を表しているかどうかを決定するために使用される機能を実現します。例えば、文字列 "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

 

公開された82元の記事 ウォンの賞賛2 ビュー4346

おすすめ

転載: blog.csdn.net/qq_22498427/article/details/104978896