3 無重複字元的最長子串

2021-10-01 15:23:11 字數 627 閱讀 5247

主要的思路是雙指標+ hash_map。

class solution {

public:

int lengthoflongestsubstring(string s) {

if(s.size() <= 1) return s.size();

mapk;

int max_length = 0;

int start(0); int end(0);

while(end < s.size()){     

max_length = max_length > end - start? max_length: end - start; //每走一步都對比一下

if(k.count(s[end]))  start = start > k[s[end]] + 1 ? start : k[s[end]] + 1; // 當有重複的時候,start 指標要向重複字母開始的一位後一位賦值。

k[s[end]] = end;   //這裡比較巧妙。不用判斷是否是有重複字母,一直更新就好了。

end ++;

return max_length > end -start? max_length: end-start; // 主要是為了防止end 指標在最後一位的情況。

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解釋 因為...