題目描述:
給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。
輸入: 「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 ...