Python – Pares coincidentes de corchetes

A veces, mientras trabajamos con datos de Python, podemos tener un problema en el que necesitamos emparejar todos los elementos con los corchetes de cierre adecuados y podemos tener datos asociados con el emparejamiento. Este tipo de problema es una aplicación clásica de Stack Data Structure y puede tener uso en muchos dominios. Analicemos una determinada forma en que se puede realizar esta tarea.

Entrada : test_list = [(‘(‘, 1), (‘(‘, 2), (‘)’, 3), (‘)’, 4)]
Salida : [(2, 3), (1, 4 )]

Entrada : test_list = [(‘(‘, 1), (‘)’, 4)]
Salida : [(1, 4)]

Método: uso de la pila DS + bucle
La combinación de funciones anteriores se puede utilizar para resolver este problema. En este, hacemos un nuevo par con cada paréntesis de apertura y cuando sale el paréntesis de cierre correspondiente usando la técnica LIFO, formamos un par con ese paréntesis de cierre.

# Python3 code to demonstrate working of 
# Matching Pairs of Brackets
# Using stack DS + loop
  
# initializing list
test_list = [('(', 7), ('(', 9), (')', 10), (')', 11), ('(', 15), (')', 100)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Matching Pairs of Brackets
# Using stack DS + loop
stck = []
res = []
for ele1, ele2 in test_list:
    if '(' in ele1:
        stck.append((ele1, ele2))
    elif ')' in ele1:
        res.append((stck.pop()[1], ele2))
  
# printing result 
print("The paired elements : " + str(res)) 
Producción :

The original list is : [('(', 7), ('(', 9), (')', 10), (')', 11), ('(', 15), (')', 100)]
The paired elements : [(9, 10), (7, 11), (15, 100)]

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *