3、無重復字符的最長子串 | JS


給定一個字符串,請你找出其中不含有重復字符的 最長子串 的長度。

 

示例 1:

輸入: s = "abcabcbb"
輸出: 3
解釋: 因為無重復字符的最長子串是 "abc",所以其長度為 3。


示例 2:

輸入: s = "bbbbb"
輸出: 1
解釋: 因為無重復字符的最長子串是 "b",所以其長度為 1。


示例 3:

輸入: s = "pwwkew"
輸出: 3
解釋: 因為無重復字符的最長子串是 "wke",所以其長度為 3。
  請注意,你的答案必須是 子串 的長度,"pwke" 是一個子序列,不是子串。


示例 4:

輸入: s = ""
輸出: 0
 

提示:

0 <= s.length <= 5 * 104
s 由英文字母、數字、符號和空格組成

 1 /**
 2  * @param {string} s
 3  * @return {number}
 4  */
 5 var lengthOfLongestSubstring = function(s) {
 6     let l = 0;
 7     let res = 0;
 8     const map = new Map();
 9     for(let r = 0; r < s.length ; r++) {
10         if (map.has(s[r]) && map.get(s[r]) >= l) { // 注意 abbcdea 這種情況
11             l = map.get(s[r]) + 1;
12         }
13         res = Math.max(res, r-l+1);  //更新最長子串
14         map.set(s[r], r);
15     }
16     return res;
17 };

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM