Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Kiểm tra dấu ngoặc cân bằng trong Python


Nhiều khi chúng ta cần tìm xem một biểu thức có cân bằng về dấu ngoặc hay không. Bằng "cân bằng" chúng ta muốn nói với mỗi dấu ngoặc trái có một dấu ngoặc phải tương ứng và thứ tự dấu ngoặc được sắp xếp đúng. Điều này quan trọng trong việc viết chương trình hoặc biểu thức toán học nơi dấu ngoặc được sử dụng nhiều. Trong chủ đề này, chúng ta sẽ xem làm thế nào để chương trình tìm ra xem một biểu thức chứa dấu ngoặc có cân bằng hay không.

Phương pháp loại bỏ (Elimination)

Trong phương pháp này, chúng ta tìm cặp dấu ngoặc bên trong cùng và thay thế chúng bằng giá trị null. Chúng ta tiếp tục làm điều này cho đến khi tất cả các cặp dấu ngoặc đều được thay thế. Nếu vẫn còn dấu ngoặc nào đó thì biểu thức không cân bằng, ngược lại biểu thức được tìm thấy là cân bằng.

Ví dụ

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
# gọi hàm
input_string = "([]{}()"
if brackets(input_string):
    print(input_string, "balanced")
else:
    print(input_string, "Not balanced")

Kết quả

Chạy mã trên cho kết quả sau:

([]{}() Not balanced