หลายครั้งเราต้องค้นหาว่านิพจน์มีความสมดุลกับวงเล็บที่อยู่ในนั้นหรือไม่ โดยความสมดุล เราหมายถึงวงเล็บด้านซ้ายแต่ละอันจะมีวงเล็บเหลี่ยมด้านขวาที่สอดคล้องกัน และลำดับของวงเล็บถูกจัดเรียงอย่างเหมาะสม สิ่งนี้มีความสำคัญในการเขียนโปรแกรมหรือนิพจน์ทางคณิตศาสตร์ที่มีการใช้วงเล็บอย่างมาก ในหัวข้อนี้ เราจะมาดูกันว่าเราจะค้นหาได้อย่างไรว่านิพจน์ที่มีวงเล็บเหลี่ยมมีความสมดุลหรือไม่
ผ่านการคัดออก
ในวิธีนี้ เราจะค้นหาวงเล็บคู่ที่อยู่ด้านในสุดและแทนที่ด้วยค่าว่าง เราทำสิ่งนี้ต่อไปจนกว่าวงเล็บคู่ทั้งหมดจะถูกแทนที่ หากยังมีวงเล็บเหลืออยู่ แสดงว่านิพจน์ไม่สมดุล ไม่เช่นนั้นจะพบว่านิพจน์มีความสมดุล
ตัวอย่าง
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