Computer >> 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ó bằng nhau hay không trong Python

Giả sử chúng ta có một chuỗi nhị phân str, chúng ta phải kiểm tra xem tất cả các số 1 trong chuỗi có bằng nhau hay không. Nói cách khác, khoảng cách giữa hai giây 1 là như nhau. Và chuỗi chứa ít nhất hai số 1.

Vì vậy, nếu đầu vào là s =​​"100001000010000", thì đầu ra sẽ là Đúng vì các số 1 ở khoảng cách 4 với nhau.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • index:=một danh sách mới
  • đối với tôi trong phạm vi từ 0 đến kích thước của s, thực hiện
    • nếu s [i] giống 1, thì
      • chèn i vào cuối chỉ mục
  • t:=kích thước của chỉ mục
  • đối với tôi trong phạm vi từ 1 đến t - 1, thực hiện
    • nếu (index [i] - index [i - 1]) không giống với (index [1] - index [0]), thì
      • trả về Sai
  • trả về True

Hãy cùng chúng tôi xem cách triển khai sau để 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