1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
// 3. Longest Substring Without Repeating Characters
use crate::Solution;
impl Solution {
pub fn length_of_longest_substring(s: String) -> i32 {
let mut left: usize = 0;
let mut ans: usize = 0;
let mut arr: [i32; 256] = [-1; 256];
for (i, c) in s.chars().enumerate() {
if arr[c as usize] >= left as i32 {
left = (arr[c as usize] + 1) as usize;
}
arr[c as usize] = i as i32;
ans = std::cmp::max(ans, i + 1 - left);
}
ans as i32
}
}