無重複字元的最長子串(滑動視窗)

2021-09-13 02:05:55 字數 630 閱讀 4804

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

示例 1:

輸入: 「abcabcbb」

輸出: 3

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

我們可以定義字元到索引的對映,而不是使用集合來判斷乙個字元是否存在。 當我們找到重複的字元時,我們可以立即跳過該視窗。也就是說,如果 s[j] 在 [i, j) 範圍內有與 j′ 重複的字元,我們不需要逐漸增加 i。 我們可以直接跳過 [i,j』] ] 範圍內的所有元素,並將 i 變為 j』 + 1。

class

solution

if( i - lastrepeatpos > maxlen )

m[s[i]

]= i;

} cout <<

"target: "

<< from <<

", "

<< end <<

" --> "

<< s.

substr

(from, end - from)

.c_str()

<< endl;

return maxlen;}}

;

無重複字元的最長子串(滑動視窗)

給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。使用list的情況下可以儲存最長的字串什麼樣子,但是這道題不需要返回最長字串,所以list不好 class solution else retu...

滑動視窗 無重複字元的最長子串

1.引入 滑動視窗是陣列 字串問題中常用的抽象概念。視窗通常是在陣列 字串中由開始和結束索引定義的一系列元素的集合,即 i,j i,j 左閉,右開 而滑動視窗是可以將兩個邊界向某一方向 滑動 的視窗。例如,我們將 i,j i,j 向右滑動 11 個元素,則它將變為 i 1,j 1 i 1,j 1 左...

3 無重複字元的最長子串(滑動視窗)

3.無重複字元的最長子串 給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。示例 3 輸入 pwwkew 輸出 3 解釋 因為無重複字元的最長子串是 wke 所以其長度為 3。請注意,你的答案必須是 子串 的長度,pwke 是乙個子串行,不是子串。思路 如果遍歷所有子串並檢查子串中字元是否重...