Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình kiểm tra xem các dấu ngoặc đơn có cân bằng hay không trong Python

Giả sử chúng ta có một chuỗi s bao gồm dấu ngoặc đơn "(" và ")". Chúng ta phải kiểm tra xem các dấu ngoặc đơn có cân đối hay không.

Vì vậy, nếu đầu vào là s =​​"(() ()) (())", thì đầu ra sẽ là True

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • num_open:=0
  • đối với mỗi ký tự c trong s, thực hiện
    • nếu c giống với ')', thì
      • nếu num_open <0, thì
        • num_open:=num_open - 1
      • nếu không,
        • trả về Sai
      • nếu không,
        • num_open:=num_open + 1
  • trả về nghịch đảo của num_open

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

class Solution:
   def solve(self, s):
      num_open = 0
      for c in s:
         if c == ')':
            if num_open < 0:
               num_open -= 1
            else:
               return False
            else:
               num_open += 1
      return not num_open
ob = Solution()
print(ob.solve("(()())(())"))

Đầu vào

"(()())(())"

Đầu ra

False