使用Python检查二进制字符串是否最多只有一个连续的1段


假设我们有一个二进制字符串s(没有前导零),我们需要检查s是否包含最多一个连续的1段。

因此,如果输入类似于s = "11100",则输出将为True,因为只有一个连续的1段"111"。

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

  • count := -1

  • 如果s的长度为1,则

    • 返回True

  • 对于s中的每个i:

    • 如果i等于"1"并且count > -1,则

      • 返回False

    • 否则,如果i等于"0",则

      • count := count + 1

  • 返回True

让我们看看下面的实现来更好地理解:

示例

在线演示

def solve(s):
   count = -1
   if len(s)==1:
      return True
   for i in s:
         if i=="1" and count>-1:
            return False
         elif i=="0":
            count+=1
   return True
s = "11100"
print(solve(s))

输入

11100

输出

True

更新于:2021年5月29日

442 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告