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))
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