給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。
示例 1:
輸入:"abcabcbb"輸出:3解釋:因為無重複字元的最長子串是"abc",所以其
長度為 3。
示例 2:
輸入:"bbbbb"輸出:1解釋:因為無重複字元的最長子串是"b"
,所以其長度為 1。
示例 3:
輸入:"pwwkew"輸出:3解釋:因為無重複字元的最長子串是思路:迴圈每個字元,查詢以當前字元開頭不重複的最長字串。"wke"
,所以其長度為 3。請注意,你的答案必須是子串的長度,
"pwke"
是乙個子串行,不是子串。
優化的點:1.若當前字元到結束位置的length<=maxresult,則退出迴圈
2.去掉第乙個重複的字元之前的字元,組成新的字串(減少一部分查詢)。比如字串是 「abcca」,查詢第乙個重複字元是「c」(charat(3),第二個「c」),則下乙個開始字串從「ca」開始,而不是從「bcca」開始。
class solution
for (int j=0;jcharset = new hashset();
int maxlength = 0;
for (int i=0;i自己的理解:用乙個框卡住字串,要求框內字串滿足題目要求,框的長度就是無重複字串長度。如圖
實現的方案是用乙個left儲存當前滑動視窗的左邊界,
解法一是第一時間想到的,第二種是看了解答後理解的,差距還是蠻大的,學習了
平時一直使用ide,習慣了敲出「.」直接出提示,手敲**問題比較多,記錄下問題(標紅是出錯的點)
set list 增加用 add
set list查詢是否存在用contains
map增加用 put
map查詢用containskey
string 擷取是substring 包含開頭,不包含結尾
string charat 從0開始
3 無重複字元的最長子串
給定乙個字串,找出不含有重複字元的最長子串的長度。示例 給定 abcabcbb 沒有重複字元的最長子串是 abc 那麼長度就是3。給定 bbbbb 最長的子串就是 b 長度是1。給定 pwwkew 最長子串是 wke 長度是3。請注意答案必須是乙個子串,pwke 是 子串行 而不是子串。思路 用 i...
3 無重複字元的最長子串
給定乙個字串,找出不含有重複字元的最長子串的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 無重複字元的最長子串是 abc 其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 無重複字元的最長子串是 b 其長度為 1。示例 3 輸入 pwwkew 輸出 3 解釋 無重複字元的最長子串是...
3 無重複字元的最長子串
給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。示例 1 輸入 abcabcbb 輸出 3解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3解釋 因為...