题目:
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
使用语言:js
思路:设置一个起始点和终止点,将原字符串截取出来,判断终止点之后一个字符是否在被切割出来的片段中出现,如果出现,则起始点为该字符出现的位置,继续切割;否则终止点+1,重复上述步骤
代码:
/**
* @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;
};