Diferença entre os codigos

1. Diferença entre os codigos

Beatriz Liz
Frantichenka

(usa Manjaro Linux)

Enviado em 16/11/2021 - 23:18h

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








  


2. Re: Diferença entre os codigos

leandro peçanha scardua
leandropscardua

(usa Ubuntu)

Enviado em 17/11/2021 - 08:29h


Mais fácil encontrar as semelhanças


3. Re: Diferença entre os codigos

Somit Vishwakarma
somit

(usa Outra)

Enviado em 20/11/2021 - 05:04h

I might have helped you, but I've just started learning.


4. Re: Diferença entre os codigos

Samuel Leonardo
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.