File tree Expand file tree Collapse file tree 1 file changed +21
-16
lines changed Expand file tree Collapse file tree 1 file changed +21
-16
lines changed Original file line number Diff line number Diff line change 11/**
2- * @param {string[] } D
3- * @param {number } N
2+ * @param {string[] } digits
3+ * @param {number } n
44 * @return {number }
55 */
6- const atMostNGivenDigitSet = function ( D , N ) {
7- const NS = '' + N
8- const digit = NS . length ,
9- dsize = D . length
10- let rtn = 0
11- for ( let i = 1 ; i < digit ; ++ i ) rtn += Math . pow ( dsize , i )
12- for ( let i = 0 ; i < digit ; ++ i ) {
13- let hasSameNum = false
14- for ( let d of D ) {
15- if ( d < NS [ i ] ) rtn += Math . pow ( dsize , digit - i - 1 )
16- else if ( d == NS [ i ] ) hasSameNum = true
6+ const atMostNGivenDigitSet = function ( digits , n ) {
7+ const str = '' + n , { pow } = Math
8+ const len = str . length , dsize = digits . length
9+ let res = 0
10+
11+ for ( let i = 1 ; i < len ; i ++ ) {
12+ res += pow ( dsize , i )
13+ }
14+
15+ for ( let i = 0 ; i < len ; i ++ ) {
16+ let sameNum = false
17+ for ( const d of digits ) {
18+ if ( + d < + str [ i ] ) {
19+ res += pow ( dsize , len - i - 1 )
20+ } else if ( + d === + str [ i ] ) sameNum = true
1721 }
18- if ( ! hasSameNum ) return rtn
22+ if ( sameNum === false ) return res
1923 }
20- return rtn + 1
21- }
24+
25+ return res + 1
26+ } ;
You can’t perform that action at this time.
0 commit comments