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