力扣演算法篇 無重複字元的最長子串

2021-10-22 17:41:26 字數 1521 閱讀 3660

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

例項:

題解:從頭遍歷字串的字元 發現在前乙個不重複子串中存在的字元,便回到存在的字元的下乙個字元處開始遍歷

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 ...