File tree Expand file tree Collapse file tree 3 files changed +79
-0
lines changed
solution/0000-0099/0003.Longest Substring Without Repeating Characters Expand file tree Collapse file tree 3 files changed +79
-0
lines changed Original file line number Diff line number Diff line change @@ -245,6 +245,34 @@ proc lengthOfLongestSubstring(s: string): int =
245
245
result = res # result has the default return value
246
246
```
247
247
248
+ ### ** Rust**
249
+
250
+ ``` rust
251
+ use std :: collections :: HashSet ;
252
+
253
+ impl Solution {
254
+ pub fn length_of_longest_substring (s : String ) -> i32 {
255
+ let n = s . len ();
256
+ let cs : Vec <char > = s . chars (). collect ();
257
+ let mut set = HashSet :: new ();
258
+ let mut l = 0 ;
259
+ let mut r = 0 ;
260
+ let mut res = 0 ;
261
+ while r != n {
262
+ let k = cs [r ];
263
+ while set . contains (& k ) {
264
+ set . remove (& cs [l ]);
265
+ l += 1 ;
266
+ }
267
+ set . insert (k );
268
+ res = res . max (set . len ());
269
+ r += 1 ;
270
+ }
271
+ res as i32
272
+ }
273
+ }
274
+ ```
275
+
248
276
### ** ...**
249
277
250
278
```
Original file line number Diff line number Diff line change @@ -227,6 +227,34 @@ proc lengthOfLongestSubstring(s: string): int =
227
227
result = res # result has the default return value
228
228
```
229
229
230
+ ### ** Rust**
231
+
232
+ ``` rust
233
+ use std :: collections :: HashSet ;
234
+
235
+ impl Solution {
236
+ pub fn length_of_longest_substring (s : String ) -> i32 {
237
+ let n = s . len ();
238
+ let cs : Vec <char > = s . chars (). collect ();
239
+ let mut set = HashSet :: new ();
240
+ let mut l = 0 ;
241
+ let mut r = 0 ;
242
+ let mut res = 0 ;
243
+ while r != n {
244
+ let k = cs [r ];
245
+ while set . contains (& k ) {
246
+ set . remove (& cs [l ]);
247
+ l += 1 ;
248
+ }
249
+ set . insert (k );
250
+ res = res . max (set . len ());
251
+ r += 1 ;
252
+ }
253
+ res as i32
254
+ }
255
+ }
256
+ ```
257
+
230
258
### ** ...**
231
259
232
260
```
Original file line number Diff line number Diff line change
1
+ use std:: collections:: HashSet ;
2
+
3
+ impl Solution {
4
+ pub fn length_of_longest_substring ( s : String ) -> i32 {
5
+ let n = s. len ( ) ;
6
+ let cs: Vec < char > = s. chars ( ) . collect ( ) ;
7
+ let mut set = HashSet :: new ( ) ;
8
+ let mut l = 0 ;
9
+ let mut r = 0 ;
10
+ let mut res = 0 ;
11
+ while r != n {
12
+ let k = cs[ r] ;
13
+ while set. contains ( & k) {
14
+ set. remove ( & cs[ l] ) ;
15
+ l += 1 ;
16
+ }
17
+ set. insert ( k) ;
18
+ res = res. max ( set. len ( ) ) ;
19
+ r += 1 ;
20
+ }
21
+ res as i32
22
+ }
23
+ }
You can’t perform that action at this time.
0 commit comments