LeetCode題庫3:無重複字元的最長子串——JavaScript解答
阿新 • • 發佈:2018-12-12
題目描述:
給定一個字串,找出不含有重複字元的最長子串的長度。
示例 1:
輸入: “abcabcbb” 輸出: 3 解釋: 無重複字元的最長子串是 “abc”,其長度為 3。
示例 2:輸入: “bbbbb” 輸出: 1 解釋: 無重複字元的最長子串是 “b”,其長度為 1。
示例 3:輸入: “pwwkew” 輸出: 3 解釋: 無重複字元的最長子串是 “wke”,其長度為 3。
請注意,答案必須是一個子串,“pwke” 是一個子序列 而不是子串。
解答方案:
/** * @param {string} s * @return {number} */ var lengthOfLongestSubstring = function(s) { var res = 0; // 用於存放當前最長無重複子串的長度 var str = ""; // 用於存放無重複子串 var len = s.length; for(var i = 0; i < len; i++) { var char = s.charAt(i); var index = str.indexOf(char); if(index === -1) { str += char; res = res < str.length ? str.length : res; } else { str = str.substr(index + 1) + char; } } return res; };
歡迎關注博主——小聖賢君,有問題可以留言哦~