LCR016.无重复字符的最长子串
链接:LCR016.无重复字符的最长子串
难度:Medium
标签:哈希表、字符串、滑动窗口
简介:给定一个字符串 s ,请你找出其中不含有重复字符的 最长连续子字符串 的长度。
题解 1 - cpp
- 编辑时间:2021-12-24
- 执行用时:8ms
- 内存消耗:6.8MB
- 编程语言:cpp
- 解法介绍:双指针。
class Solution {
          public:
    int lengthOfLongestSubstring(string s) {
        int arr[200] = {0}, l = 0, r = 0, ans = 0, n = s.size();
        while (r < n) {
            while (r < n && arr[s[r]] < 1) arr[s[r++]]++;
            ans = max(ans, r - l);
            char ch = s[r++];
            arr[ch]++;
            while (s[l] != ch) arr[s[l++]]--;
            arr[s[l++]]--;
        }
        return ans;
    }
};