1. 程式人生 > >前端面試題(7)之 leetcode-003

前端面試題(7)之 leetcode-003

dex ons code param 重復字符 class color ber @param

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

示例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) { let string = ‘‘; // 定義一個空字符串存放無重復子串,只是一個中間過程量,不會真正存儲最長的無重復子串 let len = 0; // 定義存放無重復子串的長度 for(let i = 0; i < s.length; i++) { const singleString = s.charAt(i); const singleIndex = string.indexOf(singleString);
if(singleIndex === -1) { string += singleString len = len < string.length ? string.length : len } else { string = string.substr(singleIndex + 1) + singleString } } return len }; const string = "wkqweqwerasdfxcvrsdfswkew" let a
= lengthOfLongestSubstring(string) console.log(a); // 11

前端面試題(7)之 leetcode-003