检查 Python 中二进制字符串中所有 1 是否等距
假设我们有一个二进制字符串 str,我们需要检查字符串中所有的 1 是否等距。换句话说,每两个 1 之间的距离都相同。并且字符串至少包含两个 1。
因此,如果输入类似于 s = "100001000010000",则输出将为 True,因为 1 之间的距离为 4。
为了解决这个问题,我们将遵循以下步骤:
- index := 一个新的列表
- 对于 i 从 0 到 s 的大小,执行:
- 如果 s[i] 等于 1,则:
- 将 i 插入到 index 的末尾
- 如果 s[i] 等于 1,则:
- t := index 的大小
- 对于 i 从 1 到 t - 1,执行:
- 如果 (index[i] - index[i - 1]) 不等于 (index[1] - index[0]),则:
- 返回 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
广告