
SamL
(usa XUbuntu)
Enviado em 20/11/2021 - 12:50h
Frantichenka escreveu:
Por favor alguém poderia me explicar a diferença entre esses dois códigos?
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
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
A diferença básica entre um código e o outro é que um verifica se os parenteses estão bem formado sem usar um vetor (lista) de elementos, enquanto que o segundo usa uma lista de elementos que vai sendo preenchida conforme verifica se tá bem formado ou não os parênteses.