給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。
示例 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...