T3 無重複字元的最長子串

2021-10-24 06:51:22 字數 619 閱讀 7880

思想:

採用滑動視窗思想,利用map來實現乙個視窗,每擴充一下視窗就去更新結果res

需要特別注意的是在擴充視窗時需注意:如果map中不包含right所指向的字元,直接擴充即可;但是如果map中包含right所指向的字元,此時就有可能需要右移left指標,區分到底是否需要右移left指標需要區分到底是因為跟當前視窗之前(外)的字元重複,還是跟當前視窗內的元素重複。如果是因為跟當前視窗之前(外)的字元重複,而不是跟當前視窗內的元素重複,那麼此時left還是指向當前視窗的left(也就是此時math.max(left,map.get(c)+1) = left ),否則就指向發生重複的下乙個位置(此時math.max(left,map.get( c )+1) = map.get(c)+1 )

時間複雜度o(n) 空間複雜度o(n)

class solution 

else

right++;

res = math.max(res,(right-left));

}return res;

}}

3 無重複字元的最長子串

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

3 無重複字元的最長子串

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

3 無重複字元的最長子串

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