LeeetCode3 無重複字元的最大長度

2021-10-03 05:31:16 字數 947 閱讀 9705

/*

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

示例 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 主要思想 滑動視窗 使用乙個容器儲存遍歷的字元。遍歷字串,同時將不重複的字元儲存到視窗中,視窗的右邊界加一,相當於向右滑...