C 演算法 無重複字元的最長子串

2021-09-23 18:46:07 字數 871 閱讀 7223

leetcode相關c++演算法解答:

給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。

輸入: 「abcabcbb」 輸出: 3 解釋: 因為無重複字元的最長子串是 「abc」,所以其長度為 3。

輸入: 「bbbbb」 輸出: 1 解釋: 因為無重複字元的最長子串是 「b」,所以其長度為 1。

輸入: 「pwwkew」 輸出: 3 解釋: 因為無重複字元的最長子串是 「wke」,所以其長度為 3。

1.特殊情況有:空字串if(s.length() == 0) return 0;、

2.使用set來判斷重複字元,seta; if(a.find(s[end])!=a.end())//表明有重複字元

3.定義兩個指標下標,初始化為0,1,有重複移動start,無重複移動end

class solution  

}return ret;

}};

(在保證ret之間沒有重複字元下得到ret,所以需要start為最近一次更新沒有重複字元的位置)a b a bcdef a s

1.mapa;

2.未儲存過的字元存入map, a[(s[end])] = end+1; 並修改終值ret = max(ret, end - start + 1); start為最近一次更新沒有重複字元的位置

3.儲存過的利用a.find(s[end])->second得到此字元之前最新一次的位置,並更新ret = max(ret, end - start + 1);之後將現在的位置替換之前最新一次的位置a[(s[end])] = end+1;

class solution 

return ret;

}};

無重複字元最長子串(C )

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

無重複字元最長子串

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

無重複字元最長子串

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