題目描述
給定一個字符串,請你找出其中不含有重復字符的 最長子串 的長度。
示例 1:
輸入: "abcabcbb"
輸出: 3
解釋: 因為無重復字符的最長子串是 "abc",所以其長度為 3。
示例 2:
輸入: "bbbbb"
輸出: 1
解釋: 因為無重復字符的最長子串是 "b",所以其長度為 1。
示例 3:
輸入: "pwwkew"
輸出: 3
解釋: 因為無重復字符的最長子串是 "wke",所以其長度為 3。
請注意,你的答案必須是 子串 的長度,"pwke" 是一個子序列,不是子串。
來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters
解題思路
遍歷字符串,如果set中沒有,長度累加,並加入set中,如果當前字符串最大長度大於以往的長度,更新最大長度;如果set中存在,清空set,清空子串長度,從開始計算子串長度位置的下一位開始重新計算,直到把整個字符串全都遍歷完成。
解題代碼
下邊的代碼,執行用時:146 ms 內存消耗:38.8 MB。(應該還有更好方案,后期想到了再更新)