給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。
輸出: 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...