3
[1, 3, 1, 7] -> [1] * nums(317, k)7
[13, 1, 7] -> [13] * nums(17, k)27
break because 678 > k (90), so neither 678, 6789 would be possible numbers33
def num_arrays(self, s, k, memo):36
memo_ans = memo.get(s)37
if memo_ans is not None:46
for i in range(len(s) - 1):47
# Stop when the number to the right side of the array is greater than k48
if int(s[: i + 1]) > k:50
# Don't count leading zeros53
counter += self.num_arrays(s[i + 1 :], k, memo)54
ans = counter % (10**9 + 7)58
def numberOfArrays(self, s: str, k: int) -> int:60
return self.num_arrays(s, k, memo)