在Python中检查二进制字符串中的所有1是否等距

假设我们有一个二进制字符串str,我们必须检查字符串中的所有1是否等距。换句话说,每两个1s之间的距离是相同的。并且该字符串至少包含两个1。

因此,如果输入像s =“ 100001000010000”,则输出将为True,因为1与彼此之间的距离为4。

为了解决这个问题,我们将遵循以下步骤-

  • index:=一个新列表

  • 对于范围在0到s大小之间的i,执行

    • 在索引末尾插入i

    • 如果s [i]与1相同,则

    • t:=索引大小

    • 对于1到t-1范围内的i

      • 返回False

      • 如果(index [i]-index [i-1])与(index [1]-index [0])不同,则

    • 返回True

    让我们看下面的实现以更好地理解-

    示例

    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))

    输入值

    "100001000010000"
    输出结果
    True