Leetcode # 902. Numbers At Most N Given Digit Set
- 2021.12.22
- Dynamic Programming LeetCode
https://leetcode.com/problems/numbers-at-most-n-given-digit-set/
Solution
class Solution:
def atMostNGivenDigitSet(self, digits: List[str], n: int) -> int:
n_str = str(n)
l = len(n_str)
dp = [0] * l
for i in range(l):
for d in digits:
if d < n_str[i]:
dp[i] += len(digits) ** i
elif d == n_str[i]:
dp[i] += 1 if i == 0 else dp[i - 1]
print(dp[i])
return dp[-1] + sum(len(digits) ** i for i in range(1, l))
Last Updated on 2023/08/16 by A1go