給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。
示例 1:
輸入: 「abcabcbb」
輸出: 3
解釋: 因為無重複字元的最長子串是 「abc」,所以其長度為 3。
示例 2:
輸入: 「bbbbb」
輸出: 1
解釋: 因為無重複字元的最長子串是 「b」,所以其長度為 1。
示例 3:
輸入: 「pwwkew」
輸出: 3
解釋: 因為無重複字元的最長子串是 「wke」,所以其長度為 3。
請注意,你的答案必須是 子串 的長度,「pwke」 是乙個子串行,不是子串。
根據題意我們要尋求最大沒有重複的子串,我們可以使用滑動視窗進行分析。首先我們不確定子串長度,所以視窗大小是不確定的。視窗不確定就需要我們來擴容視窗,需要注意在擴容的過程中我們需要進行重複校驗,如果有重複的字元,我們就將當前視窗最左端向右移動,然後再進行判斷視窗中是否有重複,直到視窗右側到達字串底端。
注意的點
如何判斷是否重複?
我們每次進行視窗向右擴容時,校驗此時視窗右側的字元是否在視窗中。
視窗開閉問題
[),包含左側但是不包含右側
如何校驗是否重複
使用set來儲存視窗中的字元
class
solution
else
}return ans;
}}
加油,你所做的努力最後都不會辜負你。 力扣 3 無重複字元的最長子串
3.無重複字元的最長子串 給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。示例 1 輸入 abcabcbb 輸出 3解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pww...
力扣 無重複字元的最長子串
1.暴力解法 兩個for迴圈檢出所有子串,對於每乙個子串再分別用乙個函式判斷是否為重複子串,若為非重複子串,則計算出其長度,直至找到最大值。時間複雜度 o n3 每個子串的重複判斷需要 o j i 2.滑動視窗 初始值i j 0 j不斷向右滑動,只要該字串為非重複字串就不斷向右滑動,每次滑動記錄該不...
力扣 題目3 無重複字元的最長子串
給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。示例1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例3 輸入 pwwkew 輸出 3 解釋 因為...