Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตรวจสอบวงเล็บที่สมดุลใน Python


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

ผ่านการคัดออก

ในวิธีนี้ เราจะค้นหาวงเล็บคู่ที่อยู่ด้านในสุดและแทนที่ด้วยค่าว่าง เราทำสิ่งนี้ต่อไปจนกว่าวงเล็บคู่ทั้งหมดจะถูกแทนที่ หากยังมีวงเล็บเหลืออยู่ แสดงว่านิพจน์ไม่สมดุล ไม่เช่นนั้นจะพบว่านิพจน์มีความสมดุล

ตัวอย่าง

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