無重複字元的最長子串:給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。
例項:
題解:從頭遍歷字串的字元 發現在前乙個不重複子串中存在的字元,便回到存在的字元的下乙個字元處開始遍歷
class
solution
else
if(nlength ==1)
//使用乙個vector來儲存不重複子串的長度
vector<
int> lengths;
//使用乙個vector來儲存不重複子串
vector<
char
> substring;
//使用乙個變數來儲存不重複子串的長度
int temp =0;
//定義迭代器變數
vector<
char
>
::iterator iter;
for(
int i =
0;i)else
}//如果說 只有乙個不重複子串 那麼加入vector
if(temp >0)
//得到vector中的最大元素
int max =
*max_element
(lengths.
begin()
, lengths.
end())
;return max;}}
;
本題中用到的幾個c++點:1、判斷vector中是否存在某元素:
//定義迭代器變數
vector元素類
::iterator iter;
iter = std::
find
(vec.
begin()
,vec.
end(
),key);if
(iter == vec.
end())
else
2、vector中某元素的下標
iter = std::
find
(vec.
begin()
,vec.
end(
),key)
;//得到元素的下標
int index = std::
distance
(std::
begin
(vec)
, iter)
;
3、得到vector中的最大元素
//得到vector中的最大元素
int max =
*max_element
(vec.
begin()
, vec.
end())
;
力扣 無重複字元的最長子串
1.暴力解法 兩個for迴圈檢出所有子串,對於每乙個子串再分別用乙個函式判斷是否為重複子串,若為非重複子串,則計算出其長度,直至找到最大值。時間複雜度 o n3 每個子串的重複判斷需要 o j i 2.滑動視窗 初始值i j 0 j不斷向右滑動,只要該字串為非重複字串就不斷向右滑動,每次滑動記錄該不...
力扣 無重複字元的最長子串 C
給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。輸入 pwwkew 輸出 3 解釋 因為無重複字元的最長子串...
力扣3 無重複字元的最長子串
給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3 ...