Numbers At Most N Given Digit Set LeetCode solution in JavaScript

1
var atMostNGivenDigitSet = function (digits, n) {
2
const asString = "" + n;
3
let smaller = 0;
4
let prev = 1;
5
for (let i = asString.length - 1; i >= 0; --i) {
6
const L = asString.length - 1 - i;
7
const num = +asString[i];
8
let equal = 0;
9
let less = 0;
10
for (let digit of digits) {
11
if (digit == num) {
12
equal = 1;
13
}
14
if (digit > num) {
15
break;
16
}
17
if (digit < num) {
18
less++;
19
}
20
}
21
prev = less * Math.pow(digits.length, L) + equal * prev;
22
if (L < asString.length - 1) {
23
smaller += Math.pow(digits.length, L + 1);
24
}
25
}
26
return smaller + prev;
27
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0