求字串中最長無重複子序列

2021-10-09 05:54:42 字數 821 閱讀 7028

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

示例 1:

輸入: "abcabcbb"

輸出: 3

解釋: 因為無重複字元的最長子串是 "abc",所以其長度為 3。

示例 2:

輸入: "bbbbb"

輸出: 1

解釋: 因為無重複字元的最長子串是 "b",所以其長度為 1。

示例 3:

輸入: "pwwkew"

輸出: 3

解釋: 因為無重複字元的最長子串是 "wke",所以其長度為 3。

請注意,你的答案必須是 子串 的長度,"pwke" 是乙個子串行,不是子串。

看**:

#include#include#includeusing namespace std;

//無重複的最長子串

class solution

maxlen = sta.size() > maxlen? sta.size():maxlen;

if(pr < s.length())

else

break;

}//遍歷

//for(auto it=sta.begin();it!=sta.end();it++)

return maxlen;

}};int main()

演算法思路:從頭開始遍歷字串,然後存到set裡面,每次遍歷時判斷該字元是否在set中,如果不在就加入set,如果在求出當前set長度和上乙個長度對比取最大值,清空set,然後i++,從第二個字元開始遍歷,知道遇到重複的字元。

求字串中最長無重複字元的子串

題目 求乙個字串中最長的沒有重複字元的子串。方法一 窮舉法,使用2重外迴圈遍歷所有的區間,用2重內迴圈檢驗子串是否符合 無重複字元 這一要求。其中外層迴圈i j 遍歷所有的下標,m n是內層迴圈,檢查區間 i,j 是否符合要求。空間複雜度是o 1 時間複雜度o n 4 o n 4 的時間複雜度 in...

求字串中最長無重複字元的子串

題目 求乙個字串中最長的沒有重複字元的子串。例如字串 abcdaefgh 使用hash表記錄是否之前的字元出現,具體 如下 o n 2 的時間複雜度 int max unique substring2 char str if j i maxlen break之後,比較當前的最大不重複子串的長度與之前...

求字串中最長無重複字元的子串

題目 求乙個字串中最長的沒有重複字元的子串。方法一 窮舉法,使用2重外迴圈遍歷所有的區間,用2重內迴圈檢驗子串是否符合 無重複字元 這一要求。其中外層迴圈i j 遍歷所有的下標,m n是內層迴圈,檢查區間 i,j 是否符合要求。空間複雜度是o 1 時間複雜度o n 4 o n 4 的時間複雜度 in...