題目
給定一個字符串,請你找出其中不含有重復字符的 最長子串 的長度。
示例 1:
輸入: s = "abcabcbb"
輸出: 3
解釋: 因為無重復字符的最長子串是 "abc",所以其長度為 3。
示例 2:
輸入: s = "bbbbb"
輸出: 1
解釋: 因為無重復字符的最長子串是 "b",所以其長度為 1。
示例 3:
輸入: s = "pwwkew"
輸出: 3
解釋: 因為無重復字符的最長子串是 "wke",所以其長度為 3。
請注意,你的答案必須是 子串 的長度,"pwke" 是一個子序列,不是子串。
示例 4:
輸入: s = ""
輸出: 0
題解
雙指針:
1.子串中含有重復字符,左指針移動
2.字串中不含有重復字符, 右指針移動
str存放當前選中的子串,resultStr始終儲存最大值
/**
* @param {string} s
* @return {number}
*/
var lengthOfLongestSubstring = function(s) {
let left = 0;
let right = 0;
let resultLen = 0;
let str = '';
if(s.length <= 1) {
return s.length;
}
while(s.length > right) {
if(str.indexOf(s[right]) == -1){
right++;
} else {
left++;
}
str = s.slice(left,right);
if(resultLen < str.length) {
resultLen = str.length;
}
}
return resultLen;
};