Diferença entre os codigos

Python

16/11/2021

Por favor alguém poderia me dizer qual a diferença entre esses dois códigos?

while True:
try:
List1 = input()
List2 = []
correct = False
P1 = 0
P2 = 0
for v in List1:
if (v == ''(''):
P1 += 1
List2.append(v)
if (v == '')''):
P2 += 1
List2.append(v)
if(len(List2) % 2 != 0):
correct = False
else:
if(List2[0] == '')''):
correct = False
else:
if (List2[len(List2) - 1] == ''(''):
correct = False
else:
if (P1 != P2):
correct = False
else:
correct = True
if(correct):
print("correct")
else:
print("incorrect")
except (EOFError):
break


while True:
try:
a = input()
b = 0
for i in range(len(a)):
if(a[i] == ''(''):
b += 1
elif(a[i] == '')''):
b -= 1
if(b < 0):
break
if(b != 0):
print(''incorrect'')
else:
print(''correct'')

except EOFError:
break
Fernanda Silva

Fernanda Silva

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

16/11/2021

se a sintaxe estiver correta...

a primeira versão:
- avalia se o conteúdo passado abre e fecha todos os parêntesis.
- se a quantidade de "(" for diferente da quantidade de ")", retorna erro, visto que está desbalanceado.
- caso haja algum parêntesis, verifica:
- se o primeiro é um parêntesis aberto ("("). se não for, retorna erro, porque a expressão não pode iniciar com um parêntesis fechado (")")
- se o último é um parêntesis fechado (")"). se não for, retorna erro, porque a expressão não pode terminar parêntesis aberto ("(")

a segunda versão somente verifica se o número de parêntesis aberto ("(") é igual ao número de parêntesis fechado (")").

GOSTEI 0
POSTAR