diff options
Diffstat (limited to 'rust/src/length_of_longest_substring.rs')
-rw-r--r-- | rust/src/length_of_longest_substring.rs | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/rust/src/length_of_longest_substring.rs b/rust/src/length_of_longest_substring.rs deleted file mode 100644 index cbd5e14..0000000 --- a/rust/src/length_of_longest_substring.rs +++ /dev/null @@ -1,47 +0,0 @@ -use super::Solution;
-
-impl Solution {
- pub fn length_of_longest_substring(s: String) -> i32 {
- let mut map: [i32; std::u8::MAX as usize] = [-1; std::u8::MAX as usize];
- let mut last_index: i32 = 0;
- let mut result: i32 = 0;
- let bytes = s.as_bytes();
- for (i, c) in bytes.iter().enumerate() {
- let i = i as i32;
- let c = *c as usize;
- let li = map[c];
- if li >= last_index {
- last_index = li + 1;
- map[c] = i;
- } else {
- map[c] = i;
- let length = i - last_index + 1;
- if length > result {
- result = length;
- }
- }
- }
- result
- }
-}
-
-#[cfg(test)]
-mod tests {
- use super::Solution;
-
- #[test]
- fn test() {
- assert_eq!(
- Solution::length_of_longest_substring("abcabcbb".to_string()),
- 3
- );
- assert_eq!(
- Solution::length_of_longest_substring("bbbbb".to_string()),
- 1
- );
- assert_eq!(
- Solution::length_of_longest_substring("pwwkew".to_string()),
- 3
- );
- }
-}
|