สมมติว่ามีสตริง 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