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

Kiểm tra xem tất cả các số 1 trong chuỗi nhị phân có cách đều nhau hay không trong Python


Giả sử chúng ta có một chuỗi nhị phân str, cần kiểm tra xem tất cả các số 1 trong chuỗi có cách đều nhau hay không. Nói cách khác, khoảng cách giữa mọi hai số 1 liên tiếp là giống nhau. Chuỗi chứa ít nhất hai số 1.

Ví dụ, nếu đầu vào là s = "100001000010000", thì đầu ra sẽ là True vì các số 1 cách nhau 4 vị trí.

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

  • index := danh sách rỗng lưu vị trí các số 1.
  • Duyệt i từ 0 đến độ dài s - 1:
    • Nếu s[i] == '1', thêm i vào index.
  • t := độ dài của index.
  • Duyệt i từ 1 đến t - 1:
    • Nếu (index[i] - index[i-1]) != (index[1] - index[0]), trả về False.
  • Trả về True.

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

Ví dụ

def solve(s):
    index = []
    for i in range(len(s)):
        if s[i] == '1':
            index.append(i)
    t = len(index)
    for i in range(1, t):
        if (index[i] - index[i - 1]) != (index[1] - index[0]):
            return False
    return True

s = "100001000010000"
print(solve(s))

Đầu vào

"100001000010000"

Đầu ra

True