在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