題目:
給定一個(gè)字符串,請(qǐng)你找出其中不含有重復(fù)字符的?最長(zhǎng)子串?的長(zhǎng)度。
示例?1:
輸入: "abcabcbb"
輸出: 3
解釋: 因?yàn)闊o(wú)重復(fù)字符的最長(zhǎng)子串是 "abc",所以其長(zhǎng)度為 3。
使用語(yǔ)言:js
思路:設(shè)置一個(gè)起始點(diǎn)和終止點(diǎn),將原字符串截取出來(lái),判斷終止點(diǎn)之后一個(gè)字符是否在被切割出來(lái)的片段中出現(xiàn),如果出現(xiàn),則起始點(diǎn)為該字符出現(xiàn)的位置,繼續(xù)切割;否則終止點(diǎn)+1,重復(fù)上述步驟
代碼:
/**
?*?@param?{string}?s
?*?@return?{number}
?*/
var?lengthOfLongestSubstring?=?function?(s)?{
????let?start?=?0,?res?=?0,?n?=?0;
????for?(let?i?=?0,?l?=?s.length;?i?<?l;?i++)?{
????????n?=?s.slice(start,?i).indexOf(s[i]);
????????if?(n?==?-1)?{
????????????res?=?Math.max(res,?i?+?1?-?start);
????????}?else?{
????????????start?+=?n?+?1;
????????}
????}
????return?res;
};
? ??