無重複字元的最長子串

2021-08-30 13:44:15 字數 820 閱讀 6696

描述:給定乙個字串,找出不含有重複字元的最長子串的長度。

示例 1:

輸入:"abcabcbb"輸出:3解釋:無重複字元的最長子串是 "abc",其長度為 3。
解法一: 使用滑動視窗的思路來解這道題,不含遍歷整個字串,設定兩個指標,這兩個指標就是視窗的兩邊,兩個指標的差就是目前無重複字元的長度,遍歷整個字串,使用set結構來儲存字元,如果set中不包括當前字元,那麼將當前字元新增到set中,更新長度,並移動視窗右邊指標,如果當前字元包含在set中,那麼刪除set中的當前字元,然後移動視窗左邊指標。

**如下:

public int lengthoflongestsubstring3(string s) else

set.remove(s.charat(i++));

}return ans;

}

解法二:在解法一中,對於視窗左邊的指標,我們是一步一步移動的,在這裡,我們使用map結構來對映字元和其位置的關係,這裡再移動左邊視窗時,我們可以快速的定位到最大的左邊視窗的位置而不需要一步一步的定位。

**如下:

public int lengthoflongestsubstring4(string s) 

ans = math.max(ans, j-i+1);

map.put(s.charat(j), j+1);

}return ans;

}

無重複字元最長子串

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

無重複字元最長子串

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

無重複字元的最長子串

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