Python - NECESITO AYUDA POR FAVOR

 
Vista:

NECESITO AYUDA POR FAVOR

Publicado por Amelia (7 intervenciones) el 28/10/2021 13:01:05
ALGIEN QUE PUEDA AYUDARME CON MI CODIGO Y VER SI ES LO QUE ME PIDE EL TEXTO

Leer una vector cargado de paréntesis de apertura y cierre, comprobar si el balanceo de los paréntesis es correcto. Es decir, “(()((())))” es correcto, pero “)()((()))(“ no lo es, aunque tenga el mismo número de paréntesis abiertos que cerrados.
Nota se debe asumir que cada paréntesis se encuentra almacenado en una diferente casilla o posición.

cadena =input('Introduzca la dimensión del vector:\n')#“(()((())))” es correcto “)()((()))(“ no lo es
lista = list(cadena)
pila = []
numPI = lista.count('(')
numPD = lista.count(')')
if numPI != numPD:
print("Los paréntesis no están bien balanceados")
else:
for valor in lista:
if valor == '(':
pila.append(valor)
elif valor == ')' and len(pila) > 0:
pila.pop()

if len(pila) == 0:
print("Los paréntesis están bien balanceados")
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de algoritmo
Val: 819
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

NECESITO AYUDA POR FAVOR

Publicado por algoritmo (245 intervenciones) el 29/10/2021 13:14:17
Hola

A ver si te sirve. :)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
texto1 = '(5*(1+2)+2*(2*(5+8:(10+2)-1)+9)'
texto2 = '(5*2*(2*(5+8:(10+2))-1)+9)'
 
def balanceados(txt):
    abiertos = 0
    for c in txt:
        if c == '(':
            abiertos += 1
        elif c == ')':
            abiertos -= 1
 
        if abiertos < 0:
            print('No Balanceados')
            return
 
    if abiertos > 0:
        print('No Balanceados')
    else:
       print('Balanceados')
 
balanceados(texto1)
balanceados(texto2)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar