Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Kiểm tra chuỗi 'a' và 'b' có nhóm liên tiếp độ dài bằng nhau trong Python

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