@@ -257,4 +257,108 @@ function numberCount(a: number, b: number): number {
257
257
258
258
<!-- tabs:end -->
259
259
260
+ ### 方法 2
261
+
262
+ <!-- tabs:start -->
263
+
264
+ ``` python
265
+ class Solution :
266
+ def numberCount (self , a : int , b : int ) -> int :
267
+ return sum (len (set (str (num))) == len (str (num)) for num in range (a, b + 1 ))
268
+ ```
269
+
270
+ ``` java
271
+ class Solution {
272
+ public int numberCount (int a , int b ) {
273
+ int res = 0 ;
274
+ for (int i = a; i <= b; ++ i) {
275
+ if (isValid(i)) {
276
+ ++ res;
277
+ }
278
+ }
279
+ return res;
280
+ }
281
+ private boolean isValid (int n ) {
282
+ boolean [] present = new boolean [10 ];
283
+ Arrays . fill(present, false );
284
+ while (n > 0 ) {
285
+ int dig = n % 10 ;
286
+ if (present[dig]) {
287
+ return false ;
288
+ }
289
+ present[dig] = true ;
290
+ n /= 10 ;
291
+ }
292
+ return true ;
293
+ }
294
+ }
295
+ ```
296
+
297
+ ``` cpp
298
+ class Solution {
299
+ public:
300
+ bool isvalid(int n) {
301
+ vector<bool > present(10, false);
302
+ while (n) {
303
+ const int dig = n % 10;
304
+ if (present[ dig] )
305
+ return false;
306
+ present[ dig] = true;
307
+ n /= 10;
308
+ }
309
+ return true;
310
+ }
311
+ int numberCount(int a, int b) {
312
+ int res = 0;
313
+ for (int i = a; i <= b; ++i) {
314
+ if (isvalid(i)) {
315
+ ++res;
316
+ }
317
+ }
318
+ return res;
319
+ }
320
+ };
321
+ ```
322
+
323
+ ```go
324
+ func numberCount(a int, b int) int {
325
+ count := 0
326
+ for num := a; num <= b; num++ {
327
+ if hasUniqueDigits(num) {
328
+ count++
329
+ }
330
+ }
331
+ return count
332
+ }
333
+ func hasUniqueDigits(num int) bool {
334
+ digits := strconv.Itoa(num)
335
+ seen := make(map[rune]bool)
336
+ for _, digit := range digits {
337
+ if seen[digit] {
338
+ return false
339
+ }
340
+ seen[digit] = true
341
+ }
342
+ return true
343
+ }
344
+ ```
345
+
346
+ ``` ts
347
+ function numberCount(a : number , b : number ): number {
348
+ let count: number = 0 ;
349
+ for (let num = a ; num <= b ; num ++ ) {
350
+ if (hasUniqueDigits (num )) {
351
+ count ++ ;
352
+ }
353
+ }
354
+ return count ;
355
+ }
356
+ function hasUniqueDigits(num : number ): boolean {
357
+ const digits: Set <string > = new Set (num .toString ().split (' ' ));
358
+ return digits .size === num .toString ().length ;
359
+ }
360
+ ```
361
+
362
+ <!-- tabs: end -->
363
+
260
364
<!-- end -->
0 commit comments