From ace7f9bc73504200b104a3e1799bc2bae5f18de2 Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Fri, 9 Feb 2024 20:10:49 +0530 Subject: [PATCH 01/13] feat: add solutions to lc problem: No.3032 --- .../Solution2.cpp | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.cpp diff --git a/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.cpp b/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.cpp new file mode 100644 index 0000000000000..b0adb70598d20 --- /dev/null +++ b/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.cpp @@ -0,0 +1,22 @@ +class Solution { +public: + bool isvalid(int n) { + vector present(10, false); + while (n) { + const int dig = n % 10; + if (present[dig]) + return false; + present[dig] = true; + n /= 10; + } + return true; + } + int numberCount(int a, int b) { + int res = 0; + for (int i = a; i <= b; ++i) + if (isvalid(i)){ + ++res; + } + return res; + } +}; From 90caabc693284d4debd1cb0d09e65afe6fe0b768 Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Fri, 9 Feb 2024 20:11:50 +0530 Subject: [PATCH 02/13] feat: add solutions to lc problem: No.3032 --- .../Solution2.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.java diff --git a/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.java b/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.java new file mode 100644 index 0000000000000..44dbbfadb3706 --- /dev/null +++ b/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.java @@ -0,0 +1,24 @@ +class Solution { + public int numberCount(int a, int b) { + int res = 0; + for (int i = a; i <= b; ++i) { + if (isValid(i)) { + ++res; + } + } + return res; + } + private boolean isValid(int n) { + boolean[] present = new boolean[10]; + Arrays.fill(present, false); + while (n > 0) { + int dig = n % 10; + if (present[dig]) { + return false; + } + present[dig] = true; + n /= 10; + } + return true; + } +} From 071dfd61fe16470d6915bcb0ad94d05651fd89ca Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Fri, 9 Feb 2024 20:12:19 +0530 Subject: [PATCH 03/13] feat: add solutions to lc problem: No.3032 --- .../3032.Count Numbers With Unique Digits II/Solution2.py | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.py diff --git a/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.py b/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.py new file mode 100644 index 0000000000000..13a3853d4bc08 --- /dev/null +++ b/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.py @@ -0,0 +1,3 @@ +class Solution: + def numberCount(self, a: int, b: int) -> int: + return sum(len(set(str(num))) == len(str(num)) for num in range(a, b + 1)) From a99381420e1ab62fb3d231c8eba7492ea3c04a71 Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Fri, 9 Feb 2024 20:12:57 +0530 Subject: [PATCH 04/13] feat: add solutions to lc problem: No.3032 --- .../Solution2.go | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.go diff --git a/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.go b/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.go new file mode 100644 index 0000000000000..8824b800510c3 --- /dev/null +++ b/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.go @@ -0,0 +1,20 @@ +func numberCount(a int, b int) int { + count := 0 + for num := a; num <= b; num++ { + if hasUniqueDigits(num) { + count++ + } + } + return count +} +func hasUniqueDigits(num int) bool { + digits := strconv.Itoa(num) + seen := make(map[rune]bool) + for _, digit := range digits { + if seen[digit] { + return false + } + seen[digit] = true + } + return true +} From d7e5de1798e12dc0fee54cf180c43fecef8e0501 Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Fri, 9 Feb 2024 20:14:25 +0530 Subject: [PATCH 05/13] feat: add solutions to lc problem: No.3032 --- .../Solution2.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.ts diff --git a/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.ts b/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.ts new file mode 100644 index 0000000000000..07630fc243648 --- /dev/null +++ b/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.ts @@ -0,0 +1,13 @@ +function numberCount(a: number, b: number): number { + let count: number = 0; + for (let num = a; num <= b; num++) { + if (hasUniqueDigits(num)) { + count++; + } + } + return count; +} +function hasUniqueDigits(num: number): boolean { + const digits: Set = new Set(num.toString().split('')); + return digits.size === num.toString().length; +} From ccef441807f7f7d4c3f9a045b2e4b166980b13d1 Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Fri, 9 Feb 2024 20:26:49 +0530 Subject: [PATCH 06/13] feat: add solutions to lc problem: No.3032 --- .../README_EN.md | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) diff --git a/solution/3000-3099/3032.Count Numbers With Unique Digits II/README_EN.md b/solution/3000-3099/3032.Count Numbers With Unique Digits II/README_EN.md index 4e3b61117b093..b2127ba9a7b7b 100644 --- a/solution/3000-3099/3032.Count Numbers With Unique Digits II/README_EN.md +++ b/solution/3000-3099/3032.Count Numbers With Unique Digits II/README_EN.md @@ -255,4 +255,107 @@ function numberCount(a: number, b: number): number { +### Solution 2 + + + +```python +class Solution: + def numberCount(self, a: int, b: int) -> int: + return sum(len(set(str(num))) == len(str(num)) for num in range(a, b + 1)) +``` + +```java +class Solution { + public int numberCount(int a, int b) { + int res = 0; + for (int i = a; i <= b; ++i) { + if (isValid(i)) { + ++res; + } + } + return res; + } + private boolean isValid(int n) { + boolean[] present = new boolean[10]; + Arrays.fill(present, false); + while (n > 0) { + int dig = n % 10; + if (present[dig]) { + return false; + } + present[dig] = true; + n /= 10; + } + return true; + } +} +``` + +```cpp +class Solution { +public: + bool isvalid(int n) { + vector present(10, false); + while (n) { + const int dig = n % 10; + if (present[dig]) + return false; + present[dig] = true; + n /= 10; + } + return true; + } + int numberCount(int a, int b) { + int res = 0; + for (int i = a; i <= b; ++i) + if (isvalid(i)){ + ++res; + } + return res; + } +}; +``` + +```go +func numberCount(a int, b int) int { + count := 0 + for num := a; num <= b; num++ { + if hasUniqueDigits(num) { + count++ + } + } + return count +} +func hasUniqueDigits(num int) bool { + digits := strconv.Itoa(num) + seen := make(map[rune]bool) + for _, digit := range digits { + if seen[digit] { + return false + } + seen[digit] = true + } + return true +} +``` + +```ts +function numberCount(a: number, b: number): number { + let count: number = 0; + for (let num = a; num <= b; num++) { + if (hasUniqueDigits(num)) { + count++; + } + } + return count; +} +function hasUniqueDigits(num: number): boolean { + const digits: Set = new Set(num.toString().split('')); + return digits.size === num.toString().length; +} +``` + + + From f065f60123628d21ffee5f2f9155a74300237d62 Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Fri, 9 Feb 2024 20:34:29 +0530 Subject: [PATCH 07/13] feat: add solutions to lc problem: No.3032 --- .../README.md | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) diff --git a/solution/3000-3099/3032.Count Numbers With Unique Digits II/README.md b/solution/3000-3099/3032.Count Numbers With Unique Digits II/README.md index 9926c4ce2d5d2..2bfa6d3c98ab6 100644 --- a/solution/3000-3099/3032.Count Numbers With Unique Digits II/README.md +++ b/solution/3000-3099/3032.Count Numbers With Unique Digits II/README.md @@ -257,4 +257,107 @@ function numberCount(a: number, b: number): number { +### 方法2 + + + +```python +class Solution: + def numberCount(self, a: int, b: int) -> int: + return sum(len(set(str(num))) == len(str(num)) for num in range(a, b + 1)) +``` + +```java +class Solution { + public int numberCount(int a, int b) { + int res = 0; + for (int i = a; i <= b; ++i) { + if (isValid(i)) { + ++res; + } + } + return res; + } + private boolean isValid(int n) { + boolean[] present = new boolean[10]; + Arrays.fill(present, false); + while (n > 0) { + int dig = n % 10; + if (present[dig]) { + return false; + } + present[dig] = true; + n /= 10; + } + return true; + } +} +``` + +```cpp +class Solution { +public: + bool isvalid(int n) { + vector present(10, false); + while (n) { + const int dig = n % 10; + if (present[dig]) + return false; + present[dig] = true; + n /= 10; + } + return true; + } + int numberCount(int a, int b) { + int res = 0; + for (int i = a; i <= b; ++i) + if (isvalid(i)){ + ++res; + } + return res; + } +}; +``` + +```go +func numberCount(a int, b int) int { + count := 0 + for num := a; num <= b; num++ { + if hasUniqueDigits(num) { + count++ + } + } + return count +} +func hasUniqueDigits(num int) bool { + digits := strconv.Itoa(num) + seen := make(map[rune]bool) + for _, digit := range digits { + if seen[digit] { + return false + } + seen[digit] = true + } + return true +} +``` + +```ts +function numberCount(a: number, b: number): number { + let count: number = 0; + for (let num = a; num <= b; num++) { + if (hasUniqueDigits(num)) { + count++; + } + } + return count; +} +function hasUniqueDigits(num: number): boolean { + const digits: Set = new Set(num.toString().split('')); + return digits.size === num.toString().length; +} +``` + + + From a35419857d3d8e74189ee2553ddab8af65735a02 Mon Sep 17 00:00:00 2001 From: Nothing-avil Date: Fri, 9 Feb 2024 15:11:08 +0000 Subject: [PATCH 08/13] style: format code and docs with prettier --- .../3032.Count Numbers With Unique Digits II/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/3000-3099/3032.Count Numbers With Unique Digits II/README.md b/solution/3000-3099/3032.Count Numbers With Unique Digits II/README.md index 2bfa6d3c98ab6..b37debeb7764f 100644 --- a/solution/3000-3099/3032.Count Numbers With Unique Digits II/README.md +++ b/solution/3000-3099/3032.Count Numbers With Unique Digits II/README.md @@ -257,7 +257,7 @@ function numberCount(a: number, b: number): number { -### 方法2 +### 方法 2 From 97e024fd2f1c1bee8b250bd499aa37738207a7cb Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Fri, 9 Feb 2024 20:42:47 +0530 Subject: [PATCH 09/13] feat: add solutions to lc problem: No.3032 --- .../Solution2.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.cpp b/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.cpp index b0adb70598d20..1825c28e9047d 100644 --- a/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.cpp +++ b/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.cpp @@ -3,19 +3,20 @@ class Solution { bool isvalid(int n) { vector present(10, false); while (n) { - const int dig = n % 10; - if (present[dig]) - return false; - present[dig] = true; - n /= 10; + const int dig = n % 10; + if (present[dig]) + return false; + present[dig] = true; + n /= 10; } return true; } int numberCount(int a, int b) { int res = 0; - for (int i = a; i <= b; ++i) - if (isvalid(i)){ - ++res; + for (int i = a; i <= b; ++i) { + if (isvalid(i)){ + ++res; + } } return res; } From e3dd88c1298cdd424543bdfeeb7220957224a096 Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Fri, 9 Feb 2024 20:44:03 +0530 Subject: [PATCH 10/13] feat: add solutions to lc problem: No.3032 --- .../3032.Count Numbers With Unique Digits II/Solution2.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.cpp b/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.cpp index 1825c28e9047d..9719aa09bf186 100644 --- a/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.cpp +++ b/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.cpp @@ -14,7 +14,7 @@ class Solution { int numberCount(int a, int b) { int res = 0; for (int i = a; i <= b; ++i) { - if (isvalid(i)){ + if (isvalid(I)) { ++res; } } From 00e5ee02a2d764f168a41b4ddb6f2c2ea71e7e8e Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Fri, 9 Feb 2024 20:46:58 +0530 Subject: [PATCH 11/13] feat: add solutions to lc problem: No.3032 --- .../3032.Count Numbers With Unique Digits II/Solution2.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.cpp b/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.cpp index 9719aa09bf186..7cca706937004 100644 --- a/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.cpp +++ b/solution/3000-3099/3032.Count Numbers With Unique Digits II/Solution2.cpp @@ -14,7 +14,7 @@ class Solution { int numberCount(int a, int b) { int res = 0; for (int i = a; i <= b; ++i) { - if (isvalid(I)) { + if (isvalid(i)) { ++res; } } From a88ea5f3679a6a00cc74af832b919abab12a4737 Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Fri, 9 Feb 2024 20:49:58 +0530 Subject: [PATCH 12/13] feat: add solutions to lc problem: No.3032 --- .../README.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/solution/3000-3099/3032.Count Numbers With Unique Digits II/README.md b/solution/3000-3099/3032.Count Numbers With Unique Digits II/README.md index b37debeb7764f..7d7fb0eda6eaf 100644 --- a/solution/3000-3099/3032.Count Numbers With Unique Digits II/README.md +++ b/solution/3000-3099/3032.Count Numbers With Unique Digits II/README.md @@ -300,19 +300,20 @@ public: bool isvalid(int n) { vector present(10, false); while (n) { - const int dig = n % 10; - if (present[dig]) - return false; - present[dig] = true; - n /= 10; + const int dig = n % 10; + if (present[dig]) + return false; + present[dig] = true; + n /= 10; } return true; } int numberCount(int a, int b) { int res = 0; - for (int i = a; i <= b; ++i) - if (isvalid(i)){ - ++res; + for (int i = a; i <= b; ++i) { + if (isvalid(i)) { + ++res; + } } return res; } From 55428740f74773fa1e3e932a8d547ed9f21a43e5 Mon Sep 17 00:00:00 2001 From: Sandarbh Singhal <123533242+Nothing-avil@users.noreply.github.com> Date: Fri, 9 Feb 2024 20:50:04 +0530 Subject: [PATCH 13/13] feat: add solutions to lc problem: No.3032 --- .../README_EN.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/solution/3000-3099/3032.Count Numbers With Unique Digits II/README_EN.md b/solution/3000-3099/3032.Count Numbers With Unique Digits II/README_EN.md index b2127ba9a7b7b..e456c39184854 100644 --- a/solution/3000-3099/3032.Count Numbers With Unique Digits II/README_EN.md +++ b/solution/3000-3099/3032.Count Numbers With Unique Digits II/README_EN.md @@ -298,19 +298,20 @@ public: bool isvalid(int n) { vector present(10, false); while (n) { - const int dig = n % 10; - if (present[dig]) - return false; - present[dig] = true; - n /= 10; + const int dig = n % 10; + if (present[dig]) + return false; + present[dig] = true; + n /= 10; } return true; } int numberCount(int a, int b) { int res = 0; - for (int i = a; i <= b; ++i) - if (isvalid(i)){ - ++res; + for (int i = a; i <= b; ++i) { + if (isvalid(i)) { + ++res; + } } return res; }