3 无重复字符的最长子串

题目链接

注意两点:

  1. 需要多次判重,就考虑使用unordered_map(哈希实现),或者map(红黑树)。
  2. 如果集合元素固定且数量不多,可直接使用桶方法。

代码如下:

class Solution {
     
public:
    int lengthOfLongestSubstring(string s) {
     
        int maxlen = 0, start = 0;
        vector<int> a(128,-1);
        for(int i = 0; i < s.size(); i++) {
     
            int x = a[int(s[i])];
            if(x >= start) start = x + 1;
            a[int(s[i])] = i;
            maxlen = maxlen > i - start + 1 ? maxlen : i - start + 1;
        }
        return maxlen;
    }
};

你可能感兴趣的:(LeetCode)