3 無重複字元的最長子串 字串

2022-05-25 05:33:10 字數 1142 閱讀 4430

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

示例 1:

輸入: "abcabcbb"

輸出: 3

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

示例 2:

輸入: "bbbbb"

輸出: 1

解釋: 因為無重複字元的最長子串是 "b",所以其長度為 1。

示例 3:

輸入: "pwwkew"

輸出: 3

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

請注意,你的答案必須是 子串 的長度,"pwke" 是乙個子串行,不是子串。

我們先用乙個例子來想一想如何在較優的時間複雜度內通過本題。

我們不妨以示例一中的字串 \textttabcabcbb 為例,找出 從每乙個字元開始的,不包含重複字元的最長子串,那麼其中最長的那個字串即為答案。對於示例一中的字串,我們列舉出這些結果,其中括號中表示選中的字元以及最長的字串:

以 \texttt(a)bcabcbb 開始的最長字串為 \texttt(abc)abcbb;

以 \texttta(b)cabcbb 開始的最長字串為 \texttta(bca)bcbb;

以 \textttab(c)abcbb 開始的最長字串為 \textttab(cab)cbb;

以 \textttabc(a)bcbb 開始的最長字串為 \textttabc(abc)bb;

以 \textttabca(b)cbb 開始的最長字串為 \textttabca(bc)bb;

以 \textttabcab(c)bb 開始的最長字串為 \textttabcab(cb)b;

以 \textttabcabc(b)b 開始的最長字串為 \textttabcabc(b)b;

以 \textttabcabcb(b) 開始的最長字串為 \textttabcabcb(b)。

class solution 

while (r + 1 < n && !st.count(s[r + 1]))

ans = max(ans, r - l + 1);

}return ans;

}};

3 無重複字串的最長子串

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

無重複字串的最長子串

題目描述 給定乙個字串,找出不含有重複字元的最長子串的長度。示例 給定 abcabcbb 沒有重複字元的最長子串是 abc 那麼長度就是3。給定 bbbbb 最長的子串就是 b 長度是1。給定 pwwkew 最長子串是 wke 長度是3。解題思路 在解題之前我們先要知道如何輸入乙個字串,又不會浪費空...

3 無重複字元的最長子串

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