用 Python 编写程序来计算二进制字符串中全为 1 的子字符串数量

pythonserver side programmingprogramming更新于 2026/1/18 13:00:17

假设我们有一个二进制字符串 s。我们必须找出只包含"1"的子字符串的数量。如果答案太大,则将结果取 10^9+7 的余数。

因此,如果输入为 s = "100111",则输出将为 7,因为只包含"1"的子字符串为 ["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

相关文章


有用资源