1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
// @Title: 无重复字符的最长子串 (Longest Substring Without Repeating Characters)
// @Author: 15816537946@163.com
// @Date: 2020-10-20 23:06:29
// @Runtime: 0 ms
// @Memory: 2 MB
use std::collections::HashMap;
impl Solution {
pub fn length_of_longest_substring(s: String) -> i32 {
let mut location: [i32; 256] = [-1; 256];
let mut left = 0;
let mut max_len = 0;
for (i, v) in s.chars().enumerate() {
if location[v as usize] >= left {
left = location[v as usize] + 1;
} else if i - left as usize + 1 > max_len {
max_len = i - left as usize + 1;
}
location[v as usize] = i as i32;
}
max_len as i32
}
}
|