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

โปรแกรมตรวจสอบวงเล็บว่าสมดุลหรือไม่ใน Python


สมมติว่าเรามีสตริงที่ประกอบด้วยวงเล็บ "(" และ ")" เราต้องตรวจสอบว่าวงเล็บสมดุลหรือไม่

ดังนั้น หากอินพุตเป็น s ="(()())(())" ผลลัพธ์จะเป็น True

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • num_open :=0
  • สำหรับแต่ละอักขระ c ใน s ทำ
    • ถ้า c เหมือนกับ ')' แล้ว
      • ถ้า num_open <0 แล้ว
        • num_open :=num_open - 1
      • มิฉะนั้น
        • คืนค่าเท็จ
      • มิฉะนั้น
        • num_open :=num_open + 1
  • ผลตอบแทนผกผันของ num_open

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

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("(()())(())"))

อินพุต

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

ผลลัพธ์

False