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


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

因此,如果输入类似于 s = "100001000010000",则输出将为 True,因为 1 之间的距离为 4。

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

  • index := 一个新的列表
  • 对于 i 从 0 到 s 的大小,执行:
    • 如果 s[i] 等于 1,则:
      • 将 i 插入到 index 的末尾
  • t := index 的大小
  • 对于 i 从 1 到 t - 1,执行:
    • 如果 (index[i] - index[i - 1]) 不等于 (index[1] - index[0]),则:
      • 返回 False
  • 返回 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

更新于:2020-12-30

96 次浏览

启动您的 职业生涯

完成课程获得认证

开始学习
广告