LeetCode之無重複字元的最長子串

2021-09-25 20:41:50 字數 754 閱讀 1769

題目描述:

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

輸入: 「abcabcbb」

輸出: 3

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

思路:判斷每乙個區間是否有重複的字元,如果沒有就更新它。

以下為**

class solution }}

return ans;

}public boolean allunique(string s, int start, int end)

return true;

}}

複雜度過高,超時了。

思路:1.設定start與end,end向後移動直到末尾。

2.在乙個map裡存放每乙個字元的下乙個下標,目的是為了有重複的時候找到下乙個開始的start。

3.當不存在這個字元時不需要更新start,只要end後移並加入map。

4.當存在這個字元時,需要分兩種情況。如果是視窗內的字元,那麼應該取map中的數修改為start,如果不是則start不需要改變,因為與視窗內的無關。

5.不斷更新ans的值就是結果了。

以下為**:

class solution 

ans = math.max(ans,end - start +1);

map.put(ch,end+1);

}return ans;

}}

LeetCode題庫練習之無重複字元的最長子串

參考自 題目描述 給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。解題思路 運用滑動視窗的思想,從字串第乙個位置開始遍歷,當出現重複字元時,移除最左邊的字元。直至沒有重複的字元時停止。class solution lookup.insert s i maxstr max maxstr,...

leetcode題解之無重複字元的最長子串

給定乙個字串,請你找出其中不含有重複字元的 最長子串的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3 解...

leetcode解題之無重複字元的最長子串

給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3 ...