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

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

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

เช่น ถ้าอินพุตคือ s = "(()())(())" ผลลัพธ์จะเป็น True

ขั้นตอนการแก้ปัญหา

  • num_open := 0
  • สำหรับแต่ละตัวอักษร c ใน s
    • ถ้า c == ')' ถ้า num_open < 0 num_open -= 1 มิฉะนั้น คืนค่า False
    • มิฉะนั้น num_open += 1
  • คืนค่า not 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