使用Python编写查找仅包含1的子字符串的程序

使用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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程