1416. Restore The Array
https://leetcode.com/problems/restore-the-array/
目前的解法在leetcode里TLE但是合理的dp with cache的解法
class Solution:
def numberOfArrays(self, s: str, k: int) -> int:
self.cache = dict()
mod = 10**9+7
def dp(s):
if s == "":
return 1
if s[0] == "0":
return 0
if s in self.cache:
return self.cache[s]
cnt = 0
for i in range(1,min(len(s)+1,len(str(k))+1)):
curr = int(s[:i])
if curr > k:
break
cnt += dp(s[i:]) % mod
self.cache[s] = cnt
return cnt % mod
#print(self.cache)
return dp(s)
Last updated
Was this helpful?