给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。(题目来自leetcode)
示例:
输入: "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
解法:
var lengthOfLongestSubstring = function(s) {
let str = "";
let longest = 0
for(let i = 0; i < s.length; i ++) {
const index = str.indexOf(s[i]);
if(index < 0) {
str += s[i]
} else {
// 如果有重复的,找到前面出现的位置,那从这个位置的后一位起,一直到当前的位置肯定是没有重复的,且长度最大
str = str.substr(index + 1) + s[i];
}
if (str.length > longest) {
longest = str.length
}
}
return longest;
};