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

ตรวจสอบวงเล็บสมดุล (Balanced Parentheses) ใน Python

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

วิธีการกำจัดคู่ (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