在 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
- 如果 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
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP