Medium
Count Ways To Build Good Strings — Python
Full explanation · Time O(n) · Space O(n)
# Time: O(n)
# Space: O(n)
# dp
class Solution(object):
def countGoodStrings(self, low, high, zero, one):
"""
:type low: int
:type high: int
:type zero: int
:type one: int
:rtype: int
"""
MOD = 10**9+7
result = 0
dp = [0]*(high+1)
dp[0] = 1
for i in xrange(1, high+1):
if i >= zero:
dp[i] = (dp[i]+dp[i-zero])%MOD
if i >= one:
dp[i] = (dp[i]+dp[i-one])%MOD
if i >= low:
result = (result+dp[i])%MOD
return result