1. 程式人生 > >LeetCode題庫3:無重複字元的最長子串——JavaScript解答

LeetCode題庫3:無重複字元的最長子串——JavaScript解答

題目描述:

給定一個字串,找出不含有重複字元的最長子串的長度。

示例 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; 
};

歡迎關注博主——小聖賢君,有問題可以留言哦~