Skip to content

Commit d58a70e

Browse files
committed
Time: 23 ms (29.21%), Space: 18.3 MB (40.82%) - LeetHub
1 parent 14d7a42 commit d58a70e

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# time complexity: O(n)
2+
# space complexity: O(1)
3+
class Solution:
4+
def numSub(self, s: str) -> int:
5+
MOD = 10**9 + 7
6+
left = 0
7+
result = 0
8+
for right in range(len(s)):
9+
if s[right] == '1':
10+
result += (right - left + 1)
11+
else:
12+
left = right + 1
13+
return result % MOD
14+
15+
16+
s = "0110111"
17+
print(Solution().numSub(s))
18+
s = "101"
19+
print(Solution().numSub(s))
20+
s = "000"
21+
print(Solution().numSub(s))
22+
s = "111111"
23+
print(Solution().numSub(s))

0 commit comments

Comments
 (0)