前端中等演算法 無重複字元的最長子串

2021-09-26 00:20:06 字數 1365 閱讀 7855

給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。

輸出: 3

解釋: 因為無重複字元的最長子串是 「abc」,所以其長度為 3。

輸出: 1

解釋: 因為無重複字元的最長子串是 「b」,所以其長度為 1。

輸出: 3

解釋: 因為無重複字元的最長子串是 「wke」,所以其長度為 3。

輸出: 3

解釋: 因為無重複字元的最長子串是 「vdf」,所以其長度為 3。

輸出: 6

解釋: 因為無重複字元的最長子串是 「sjrgap」,所以其長度為 6。

輸出: 3

解釋: 因為無重複字元的最長子串是 「ab!」,所以其長度為 3。

輸出: 3

解釋: 因為無重複字元的最長子串是 「abc」,所以其長度為 3。

輸出: 4

解釋: 因為無重複字元的最長子串是 「aslj」,所以其長度為 4。

輸出: 8

解釋: 因為無重複字元的最長子串是 「fenpglqd」,所以其長度為 8。

關鍵在於在出現重複字元時,如何更新不重複字元的index

/**

* @param s

* @return

*/var

lengthoflongestsubstring

=function

(s)

用物件儲存字元的位置, 出現重複字元時更新不重複字元的index。

var

lengthoflongestsubstring

=function

(s);

// 用於儲存字元出現的位置

let res =0;

// 最大值

let j =0;

// 不重複字元的index

for(

let i =

0; i < s.length; i++

)// 每個字元都計算一下最長不重複值 儲存最大值

// 不重複最長長度 = 當前index - 上一次重複值的index + index從0開始 長度從1開始

res = math.

max(res, i - j +1)

;// 存/更新 字串index

obj[s[i]

]= i

}return res;

};

從左到右,乙個字元乙個字元搜尋,看是否重複。

var

lengthoflongestsubstring

=function

(s)else

}return res;

};

3 無重複字元的最長子串(中等題)

題目描述 給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew ...

無重複字元最長子串

給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3 ...

無重複字元最長子串

題目描述 給定乙個字串,找出不含有重複字元的 最長子串 的長度。示例 給定 abcabcbb 沒有重複字元的最長子串是 abc 那麼長度就是3。給定 bbbbb 最長的子串就是 b 長度是1。給定 pwwkew 最長子串是 wke 長度是3。請注意答案必須是乙個子串,pwke 是子串行而不是子串 i...