在 Python 中计算二进制字符串中包含全 1 子字符串数量的程序


假设我们有二进制字符串 s。我们必须找到仅包含 "1" 的子字符串的数量。如果答案太大,则对结果取 10^9+7 的模。

因此,如果输入如下 s = "100111",则输出将为 7,因为仅包含 "1" 的子字符串为 ["1", "1", "1", "1", "11", "11" 和 "111"]

要解决此问题,我们将遵循以下步骤 −

  • a := 0
  • count := 0
  • 对于 i 的范围是 0 到 s 的大小 - 1,执行
    • 如果 s[i] 与 "0" 相同,则
      • a := 0
    • 否则,
      • a := a + 1
      • count := count + a
  • 返回 count

示例

让我们看看以下实现以获得更好的理解 −

def solve(s):
   a = 0
   count = 0
   for i in range(len(s)):
      if s[i] == "0":
         a = 0
      else:
         a += 1
         count += a
   return count

s = "100111"
print(solve(s))

输入

"100111"

输出

7

更新于: 2021 年 10 月 18 日

469 次浏览量

开启您的 职业生涯

完成课程后获得认证

开始
广告
© . All rights reserved.