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

Kiểm tra xem tất cả các lần xuất hiện của ký tự có xuất hiện liên tiếp hay không trong Python


Giả sử chúng ta có chuỗi s và ký tự c, cần kiểm tra xem tất cả các lần xuất hiện của c trong s có xuất hiện liên tiếp nhau hay không. Nếu c không có trong s, cũng trả về True.

Ví dụ, s = "bbbbaaaaaaaccddd", c = 'a', đầu ra True.

Các bước giải quyết:

  • flag := False, index := 0, n := độ dài chuỗi.
  • Trong khi index < n:
    • Nếu string[index] == c:
      • Nếu flag là True, trả về False (xuất hiện lần 2 không liên tiếp).
      • Trong khi index < n và string[index] == c: index += 1 (bỏ qua khối liên tiếp).
      • flag := True.
    • Ngược lại: index += 1.
  • Trả về True.

Xem ví dụ dưới đây để hiểu rõ hơn:

Ví dụ

def solve(string, c):
    flag = False
    index = 0
    n = len(string)
    while index < n:
        if string[index] == c:
            if flag:
                return False
            while index < n and string[index] == c:
                index += 1
            flag = True
        else:
            index += 1
    return True

s = "bbbbaaaaaaaccddd"
c = 'a'
print(solve(s, c))

Đầu vào

"bbbbaaaaaaaccddd", "a"

Đầu ra

True