給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。
示例 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...