File tree 4 files changed +125
-0
lines changed
solution/1800-1899/1805.Number of Different Integers in a String
4 files changed +125
-0
lines changed Original file line number Diff line number Diff line change @@ -158,6 +158,51 @@ func numDifferentIntegers(word string) int {
158
158
}
159
159
```
160
160
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
+
161
206
### ** ...**
162
207
163
208
```
Original file line number Diff line number Diff line change @@ -139,6 +139,51 @@ func numDifferentIntegers(word string) int {
139
139
}
140
140
```
141
141
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
+
142
187
### ** ...**
143
188
144
189
```
Original file line number Diff line number Diff line change
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 number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments