Given a string, find the length of the longest substring without repeating characters.
照例使用 javascript 编程:
这题乍看不难,实际上,在效率提高方面可以参照 KMP 算法。尽可能的减少重复运算。保留求解域的连续性。提交结果:159 ms ,92%
var lengthOfLongestSubstring = function(s) {
var maxLen = 1,result = 0;
var start = 0,nextStart;
if(!s.length){
return 0;
}
var temp = s.substr(start,maxLen);
for(var i = 1; i < s.length; i++){
// console.log(i,temp,s[i],maxLen);
if( temp.indexOf(s[i]) > -1 ){
start = temp.indexOf(s[i]) + 1 + start;
result = maxLen > result ? maxLen : result;
maxLen = i - start + 1;
// console.log("重组:",s.substr(start,maxLen),maxLen);
}else{
maxLen++;
}
temp = s.substr(start,maxLen);
}
// 一般情况下,都需要最后进行一次判断,防止结果出现在最后。
return maxLen > result ? maxLen : result;
};
最长无重复子串
本文介绍了一种使用JavaScript实现的高效算法,用于寻找给定字符串中最长的无重复字符子串长度。通过优化减少重复计算并保持求解域连续性,最终实现了159ms的运行效率。
558

被折叠的 条评论
为什么被折叠?



