Skip to content

Commit 06d92de

Browse files
committed
feat: add solutions to lc problem: No.1805
No.1805.Number of Different Integers in a String
1 parent 9b12342 commit 06d92de

File tree

4 files changed

+125
-0
lines changed

4 files changed

+125
-0
lines changed

solution/1800-1899/1805.Number of Different Integers in a String/README.md

+45
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,51 @@ func numDifferentIntegers(word string) int {
158158
}
159159
```
160160

161+
### **TypeScript**
162+
163+
```ts
164+
function numDifferentIntegers(word: string): number {
165+
return new Set(
166+
word
167+
.replace(/\D+/g, ' ')
168+
.trim()
169+
.split(' ')
170+
.filter(v => v !== '')
171+
.map(v => v.replace(/^0+/g, '')),
172+
).size;
173+
}
174+
```
175+
176+
### **Rust**
177+
178+
```rust
179+
use std::collections::HashSet;
180+
impl Solution {
181+
pub fn num_different_integers(word: String) -> i32 {
182+
let s = word.as_bytes();
183+
let n = s.len();
184+
let mut set = HashSet::new();
185+
let mut i = 0;
186+
while i < n {
187+
if s[i] >= b'0' && s[i] <= b'9' {
188+
let mut j = i;
189+
while j < n && s[j] >= b'0' && s[j] <= b'9' {
190+
j += 1;
191+
}
192+
while i < j - 1 && s[i] == b'0' {
193+
i += 1;
194+
}
195+
set.insert(String::from_utf8(s[i..j].to_vec()).unwrap());
196+
i = j;
197+
} else {
198+
i += 1;
199+
}
200+
}
201+
set.len() as i32
202+
}
203+
}
204+
```
205+
161206
### **...**
162207

163208
```

solution/1800-1899/1805.Number of Different Integers in a String/README_EN.md

+45
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,51 @@ func numDifferentIntegers(word string) int {
139139
}
140140
```
141141

142+
### **TypeScript**
143+
144+
```ts
145+
function numDifferentIntegers(word: string): number {
146+
return new Set(
147+
word
148+
.replace(/\D+/g, ' ')
149+
.trim()
150+
.split(' ')
151+
.filter(v => v !== '')
152+
.map(v => v.replace(/^0+/g, '')),
153+
).size;
154+
}
155+
```
156+
157+
### **Rust**
158+
159+
```rust
160+
use std::collections::HashSet;
161+
impl Solution {
162+
pub fn num_different_integers(word: String) -> i32 {
163+
let s = word.as_bytes();
164+
let n = s.len();
165+
let mut set = HashSet::new();
166+
let mut i = 0;
167+
while i < n {
168+
if s[i] >= b'0' && s[i] <= b'9' {
169+
let mut j = i;
170+
while j < n && s[j] >= b'0' && s[j] <= b'9' {
171+
j += 1;
172+
}
173+
while i < j - 1 && s[i] == b'0' {
174+
i += 1;
175+
}
176+
set.insert(String::from_utf8(s[i..j].to_vec()).unwrap());
177+
i = j;
178+
} else {
179+
i += 1;
180+
}
181+
}
182+
set.len() as i32
183+
}
184+
}
185+
```
186+
142187
### **...**
143188

144189
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
use std::collections::HashSet;
2+
impl Solution {
3+
pub fn num_different_integers(word: String) -> i32 {
4+
let s = word.as_bytes();
5+
let n = s.len();
6+
let mut set = HashSet::new();
7+
let mut i = 0;
8+
while i < n {
9+
if s[i] >= b'0' && s[i] <= b'9' {
10+
let mut j = i;
11+
while j < n && s[j] >= b'0' && s[j] <= b'9' {
12+
j += 1;
13+
}
14+
while i < j - 1 && s[i] == b'0' {
15+
i += 1;
16+
}
17+
set.insert(String::from_utf8(s[i..j].to_vec()).unwrap());
18+
i = j;
19+
} else {
20+
i += 1;
21+
}
22+
}
23+
set.len() as i32
24+
}
25+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
function numDifferentIntegers(word: string): number {
2+
return new Set(
3+
word
4+
.replace(/\D+/g, ' ')
5+
.trim()
6+
.split(' ')
7+
.filter(v => v !== '')
8+
.map(v => v.replace(/^0+/g, '')),
9+
).size;
10+
}

0 commit comments

Comments
 (0)