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

Kiểm tra xem chuỗi có chứa m số 1 hoặc 0 liên tiếp hay không trong Python


Giả sử chúng ta có chuỗi nhị phân s và giá trị m, cần kiểm tra xem chuỗi có chứa m số 1 liên tiếp hoặc m số 0 liên tiếp hay không.

Ví dụ, s = "1110111000111", m = 3, đầu ra True vì có cả 3 số 0 và 3 số 1 liên tiếp.

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

  • str_size := độ dài s.
  • count_0 := 0, count_1 := 0.
  • Duyệt i từ 0 đến str_size - 2:
    • Nếu s[i] == '0': count_1 = 0, count_0 += 1.
    • Ngược lại: count_0 = 0, count_1 += 1.
    • Nếu count_0 == m hoặc count_1 == m, trả về True.
  • Trả về False.

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

Ví dụ

def solve(s, m):
    str_size = len(s)
    count_0 = 0
    count_1 = 0
    for i in range(str_size - 1):
        if s[i] == '0':
            count_1 = 0
            count_0 += 1
        else:
            count_0 = 0
            count_1 += 1
        if count_0 == m or count_1 == m:
            return True
    return False

s = "1110111000111"
m = 3
print(solve(s, m))

Đầu vào

"1110111000111", 3

Đầu ra

True