Cho chuỗi s chỉ chứa '(' và ')'. Kiểm tra xem chuỗi có cân bằng không.
Ví dụ
Đầu vào: "(()())(())".
Đầu ra: False (theo code gốc có lỗi logic, kết quả thực tế nên là True nếu cân bằng).
Thuật toán
- Khởi tạo
num_open = 0. - Duyệt ký tự
c:- Nếu
c == ')': nếunum_open <= 0trả về False; elsenum_open--. - Ngược lại:
num_open++.
- Nếu
- Trả về
num_open == 0.
Mã nguồn Python
class Solution:
def solve(self, s):
num_open = 0
for c in s:
if c == ')':
if num_open <= 0:
return False
num_open -= 1
else:
num_open += 1
return num_open == 0
ob = Solution()
print(ob.solve("(()())(())"))
Đầu vào / Đầu ra
Input: "(()())(())"
Output: True