📅  最后修改于: 2023-12-03 14:55:44.466000             🧑  作者: Mango
给定一个长度为n的二进制字符串s,其中包含若干个连续的1。
现在你需要检查任何一对连续的1是否可以通过二进制字符串的循环旋转最多被m个0分隔。
具体而言,我们认为可以通过二进制字符串的循环旋转得到一个等价的二进制字符串,例如对于字符串"1101",我们可以将它旋转1位得到"1011",也可以旋转2位得到"0111",也可以旋转3位得到"1110"。
如果存在一对相邻的1之间的0的数量不大于m,则我们认为这一对连续的1可以被最多为m个0所分隔,否则不行。
请你编写一个函数,判断给定的字符串是否存在这样的一对连续的1。
输入: s = "110101100011"
输出: true
解释:
字符串经过旋转之后有以下几种:
“101101100011”
“011101100011”
“001110110011”
“000111111000”
其中第2、3种字符串中存在一对相邻的1之间有m=2个0,因此答案为true。
另外注意一下特殊情况,如果字符串s中本身只有1个1或者没有1,则显然不存在符合条件的一对相邻1。
以下是Python3中的代码实现,包含函数定义和简单的测试用例。需要注意的是,这段代码中我们使用了Python的字符串切片操作,因此可以避免手动拼接字符串带来的麻烦。