Cho chuỗi chỉ chứa 'a' và 'b'. Kiểm tra mọi nhóm 'a' liên tiếp đều được theo sau bởi nhóm 'b' liên tiếp có cùng độ dài.
Ví dụ: "abaaabbbaabbaabbab" → các nhóm: (ab), (aaabbb), (aabb), (aabb), (ab) → True.
Thuật toán
- Duyệt chuỗi, đếm số 'a' liên tiếp (
a_count++). - Đếm số 'b' liên tiếp ngay sau đó (
a_count--). - Nếu sau mỗi cặp nhóm
a_count != 0→False. - Hết chuỗi →
True.
Triển khai
def solve(s):
a_count = 0
i = 0
n = len(s)
while i < n:
while i < n and s[i] == 'a':
a_count += 1
i += 1
while i < n and s[i] == 'b':
a_count -= 1
i += 1
if a_count != 0:
return False
return True
s = "abaaabbbaabbaabbab"
print(solve(s)) # True
Đầu vào / Đầu ra
Input: "abaaabbbaabbaabbab"
Output: True