หลายครั้งต้องตรวจสอบว่านิพจน์มีวงเล็บสมดุลหรือไม่ คือ วงเล็บซ้ายแต่ละอันมีวงเล็บขวาตรงกัน และลำดับถูกต้อง สำคัญในการเขียนโปรแกรมหรือนิพจน์คณิตศาสตร์
วิธีการกำจัดคู่ (Elimination Method)
หาคู่วงเล็บในสุดและแทนที่ด้วยค่าว่าง ทำซ้ำจนกว่าจะไม่มีคู่เหลือ ถ้ายังเหลือวงเล็บ = ไม่สมดุล ไม่เหลือ = สมดุล
โค้ดตัวอย่าง
def brackets(expression):
all_br = ['()', '{}', '[]']
while any(x in expression for x in all_br):
for br in all_br:
expression = expression.replace(br, '')
return not expression
# เรียกใช้
input_string = "([]{}()"
if brackets(input_string):
print(input_string, "balanced")
else:
print(input_string, "Not balanced")
ผลลัพธ์
([]{}() Not balanced