Diferença entre os codigos
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
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
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
Curtidas 0
Respostas
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 (")").
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