筆試題23 無重複字元的最長子串

2021-09-26 09:10:48 字數 656 閱讀 3924

題目描述:

給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。

輸入: 「abcabcbb」

輸出: 3

解釋: 因為無重複字元的最長子串是 「abc」,所以其長度為 3。

思想:

遇到子串問題,首先想到的就是滑動窗**巧。類似之前的思路,使用 window 作為計數器記錄視窗中的字元出現次數,然後先向右移動 right,當 window **現重複字元時,開始移動 left 縮小視窗,如此往復。

核心**如下:

int lengthoflongestsubstring(string s) 

//因為我們要求的是最長子串,所以需要在每次移動right增大視窗時更新res

res = max(res, right - left);

} //測試

cout << "left = " << left << " , right = " << right << endl;

for (unordered_map::iterator it = window.begin(); it != window.end(); it++)

return res;

}

無重複字元最長子串

給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3 ...

無重複字元最長子串

題目描述 給定乙個字串,找出不含有重複字元的 最長子串 的長度。示例 給定 abcabcbb 沒有重複字元的最長子串是 abc 那麼長度就是3。給定 bbbbb 最長的子串就是 b 長度是1。給定 pwwkew 最長子串是 wke 長度是3。請注意答案必須是乙個子串,pwke 是子串行而不是子串 i...

無重複字元的最長子串

給定乙個字串,找出不含有重複字元的最長子串的長度。示例 給定 abcabcbb 沒有重複字元的最長子串是 abc 那麼長度就是3。給定 bbbbb 最長的子串就是 b 長度是1。給定 pwwkew 最長子串是 wke 長度是3。請注意答案必須是乙個子串,pwke 是 子串行 而不是子串。int le...