blob: 7293c13b2fb395c07cd289f3abfc35dd97ada6b1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
struct Solution {}
impl Solution {
pub fn length_of_longest_substring(s: String) -> i32 {
let mut set: [u8;256] = [0;256];
let mut i1: usize = 0;
let mut i2: usize = 0;
let mut max: i32 = 0;
loop {
if i1 >= s.len() { break; }
if set[s.as_bytes()[i1] as usize] == 0 {
set[s.as_bytes()[i1] as usize] = 1;
i1 = i1 + 1;
if i1 as i32 - i2 as i32 > max { max = i1 as i32 - i2 as i32 }
continue;
} else {
loop {
set[s.as_bytes()[i2] as usize] = 0;
i2 = i2 + 1;
if set[s.as_bytes()[i1] as usize] == 0 {
break;
} else {
continue;
}
}
}
}
max
}
}
fn main() {
println!("{:?}", Solution::length_of_longest_substring("abcabcbb".to_string()));
}
|