หลายครั้งเราต้องค้นหาว่านิพจน์มีความสมดุลกับวงเล็บที่อยู่ในนั้นหรือไม่ โดยความสมดุล เราหมายถึงวงเล็บด้านซ้ายแต่ละอันจะมีวงเล็บเหลี่ยมด้านขวาที่สอดคล้องกัน และลำดับของวงเล็บถูกจัดเรียงอย่างเหมาะสม สิ่งนี้มีความสำคัญในการเขียนโปรแกรมหรือนิพจน์ทางคณิตศาสตร์ที่มีการใช้วงเล็บอย่างมาก ในหัวข้อนี้ เราจะมาดูกันว่าเราจะค้นหาได้อย่างไรว่านิพจน์ที่มีวงเล็บเหลี่ยมมีความสมดุลหรือไม่
ผ่านการคัดออก
ในวิธีนี้ เราจะค้นหาวงเล็บคู่ที่อยู่ด้านในสุดและแทนที่ด้วยค่าว่าง เราทำสิ่งนี้ต่อไปจนกว่าวงเล็บคู่ทั้งหมดจะถูกแทนที่ หากยังมีวงเล็บเหลืออยู่ แสดงว่านิพจน์ไม่สมดุล ไม่เช่นนั้นจะพบว่านิพจน์มีความสมดุล
ตัวอย่าง
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
# calling the function
input_string = "([]{}()"
if brackets(input_string):
print(input_string,"balanced")
else:
print(input_string,"Not balanced") ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
([]{}() Not balanced