/*
給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。
示例 1:
輸入: "abcabcbb"
輸出: 3
解釋: 因為無重複字元的最長子串是 "abc",所以其長度為 3。
示例 2:
輸入: "bbbbb"
輸出: 1
解釋: 因為無重複字元的最長子串是 "b",所以其長度為 1。
示例 3:
輸入: "pwwkew"
輸出: 3
解釋: 因為無重複字元的最長子串是 "wke",所以其長度為 3。
請注意,你的答案必須是 子串 的長度,"pwke" 是乙個子串行,不是子串。
*//*
宣告乙個從l到r的滑動視窗,
在定義乙個freq頻率陣列記錄每個字元出現的頻率,
如果r+1指向的字元在頻率陣列中沒有出現,也就是為0,那麼r++,
此時最長的字串長度也加1,如果r+1的字元在頻率陣列**現過,
則讓l++,在此之前,先把freq[s[l]]的頻率-1
*/#include
#include
using
namespace std;
class
solution
;int l=0;
int r=-1
;//滑動視窗為s[l...r]
int res=0;
while
(llength()
)else
res=
max(res,r-l+1)
;//由於有l++的操作,r-l+1的值可能會小於res,
//但是由於這道題是為了找到最大的字串長度,所以應該取兩者的最大值
}return res;}}
;int
main()
3 無重複字元的最長字串
題目描述 給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。s 由英文本母 數字 符號和空格組成。例項 輸入 s abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。link 解題思路 滑動視窗 1 我們使用兩個指標表示字串中某個子串的左右邊界。其中左...
3 無重複字元的最長字串
給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3 ...
3 無重複字元的最長字串
給定乙個字串,找出不含有重複字元的最長子串的長度。示例1 輸入 abcabcbb 輸出 3 解釋 無重複字元的最長子串是 abc 其長度為 3。示例2 輸入 bbbbb 輸出 1 主要思想 滑動視窗 使用乙個容器儲存遍歷的字元。遍歷字串,同時將不重複的字元儲存到視窗中,視窗的右邊界加一,相當於向右滑...