用 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
- 如果 s[i] 与"0"相同,则
- 返回 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
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

