3 無重複字元的最長子串

哈利法發表於2020-10-09

題目連結

注意兩點:

  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;
    }
};

相關文章