题目:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。
示例1:
输入: “abcabcdc”
输出: 4
示例2:
输入: “aabbcd”
输出: 3
示例3:
输入: “aaaa”
输出: 1
思路:遍历字符串,当遍历到的项与前面出现的项重复时,记录此时的字符串长度并删除与该项重复的前面的项,继续遍历。最后判断最长子串。
以示例1为例:
不含有重复字符的 最长子串 的长度为len(n-1)即长度为4。
解答:
var lengthOfLongestSubstring = function(s) {
let arr = []; max = 0;
for(let i = 0; i < s.length; i++) {
let index = arr.indexOf(s[i]);
if(index !== -1) {
arr.splice(0, index + 1);
}
arr.push(s[i]);
max = Math.max(arr.length, max);
}
return max;
};