無重複字元的最長子串
給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。
示例 1:
輸入: s = 「abcabcbb」
輸出: 3
解釋: 因為無重複字元的最長子串是 「abc」,所以其長度為 3。
示例 2:
輸入: s = 「bbbbb」
輸出: 1
解釋: 因為無重複字元的最長子串是 「b」,所以其長度為 1。
示例 3:
輸入: s = 「pwwkew」
輸出: 3
解釋: 因為無重複字元的最長子串是 「wke」,所以其長度為 3。
請注意,你的答案必須是 子串 的長度,「pwke」 是乙個子串行,不是子串。
示例 4:
輸入: s = 「」
輸出: 0
0 <= s.length <= 5 * 104
s 由英文本母、數字、符號和空格組成
解題思路
滑動視窗
思路:子串是連續的,所以首先想到滑動視窗。視窗向右滑動,遇到了重複元素就需要把視窗中的重複元素及以前的元素都刪掉。
做法:用兩個指標代表視窗兩端。右指標一直向右移動,到頭時結束。每移動一格元素判斷是否有重複的,把重複元素及以前的元素都刪掉,需要用到map,可以判斷是否有重複元素,以及記錄元素位置。每次成功新增元素後記錄當前長度。
時間複雜度:o(n),雖然中間有乙個把map中重複及以前的元素刪除的遍歷,但是map中的元素是字串的元素依次新增的。相當於兩個遍歷同時進行。兩個指標向右移動。所以時間複雜度依然是:o(n),空間複雜度:o(n)
**
class
solution
else
}return maxlength;
}}
3 無重複字元的最長子串(滑動視窗)
3.無重複字元的最長子串 給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。示例 3 輸入 pwwkew 輸出 3 解釋 因為無重複字元的最長子串是 wke 所以其長度為 3。請注意,你的答案必須是 子串 的長度,pwke 是乙個子串行,不是子串。思路 如果遍歷所有子串並檢查子串中字元是否重...
無重複字元的最長子串(滑動視窗)
給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。我們可以定義字元到索引的對映,而不是使用集合來判斷乙個字元是否存在。當我們找到重複的字元時,我們可以立即跳過該視窗。也就是說,如果 s...
無重複字元的最長子串(滑動視窗)
給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。使用list的情況下可以儲存最長的字串什麼樣子,但是這道題不需要返回最長字串,所以list不好 class solution else retu...