Участник:Alexryabov/TaskValidNumber

Материал из DISCOPAL
Перейти к: навигация, поиск

https://leetcode.com/problems/valid-number/

class Solution:
    def isNumber(self, s: str) -> bool:
        s = s.strip()
        num_before = False
        dot_before = False
        e_before = False
 
        for i in range(len(s)):
            piece = s[i]
            if piece in ['+','-']:
                if i!=0 and s[i-1]!='e': # с + и - других вариантов нет
                    return False
            elif piece=='.':
                if e_before==True or dot_before==True: # видели две точки или перед точкой e = плохо
                    return False
                dot_before = True
            elif piece.isdigit(): 
                num_before=True
            elif piece=='e':
                if num_before==False or e_before==True: 
                    return False
                num_before=False
                e_before = True
            else:
                return False
 
        return num_before