使用Python编写查找仅包含1的子字符串的程序
假设我们有一个二进制字符串s。我们需要找到所有字符都是1的子字符串的数量。答案可能很大,因此返回结果模10^9 + 7。
因此,如果输入为s =“ 1011010”,则输出将为5,因为1.四次“ 1” 2.一次“ 11”
要解决此问题,请遵循以下步骤−
- m:= 10 ^ 9 + 7
-
result:= 0
-
div:=使用“ 0”拆分二进制字符串
-
对于div中的每个x,执行以下操作
- 如果x为空,则进行下一次迭代
-
result:= result +(x的大小*(x的大小+1))/ 2的商
-
返回结果mod m
让我们看下面的实现,以更好地理解−
更多Python相关文章,请阅读:Python 教程
例子
def solve(s):
m = 10**9+7
result = 0
for x in s.split('0'):
if not x: continue
result += (len(x)*(len(x)+1)) // 2
return result % m
s = "1011010"
print(solve(s))
输入
“ 1011010”
输出
5