Python – 匹配括号对
有时,在处理Python数据时,我们可能会遇到需要将所有元素与合适的右括号配对的问题,并且可以将数据与配对相关联。这类问题是堆栈数据结构的经典应用,可以跨多个领域使用。让我们讨论一下可以完成此任务的某种方式。
Input : test_list = [(‘(‘, 1), (‘(‘, 2), (‘)’, 3), (‘)’, 4)]
Output : [(2, 3), (1, 4)]
Input : test_list = [(‘(‘, 1), (‘)’, 4)]
Output : [(1, 4)]
方法:使用堆栈 DS + 循环
上述功能的组合可以用来解决这个问题。在此,我们与每个左括号组成一个新的对,当相应的右括号使用 LIFO 技术时,我们与该右括号形成一个对。
# 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)]