仅以此纪录每日LeetCode所刷题目
题目描述:
示例:
思路:
这道题其实是一个巧算,想到方法之后代码就非常简单。这个字符串是由0和1组成的,而这道题只和1有关系,我们首先将这个字符串以0为分隔符分割开来。接着我们需要发现一个规律,我们首先举一例子,在'11111'中有一个'11111',两个'1111',三个'111',四个'11',五个'1'我们可以使用循环将他们表示出来:
for j in range(1,len('11111') + 1):
这个循环 的输出为1 2 3 4 5,正好就是'11111'串中字符为1的字串的个数。因此,这道题只需要两个for循环即可解决。
代码:
class Solution:
def numSub(self, s: str) -> int:
count = 0
for i in s.split("0"):
for j in range(1,len(i) + 1):
count += j
return count%1000000007