Leetcode部分题目整理(Javascript)

时间:2019-08-20 10:10:58   收藏:0   阅读:75

无重复字符的最长子串

/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLongestSubstring = function(s) {
    var ans = [], vis = [], max = 0;
    for(var i = 0; i < 256; i++){
        vis.push(-1);
    }
    for(var i = 0; i < s.length; i++){
        var t = s[i].charCodeAt() - 0;
        if(vis[t] == -1){
            vis[t] = i;
            ans.push(s[i]);
            if(ans.length > max){
                max = ans.length;
            }
        }
        else{
            var pos = ans.indexOf(s[i]);
            for(var j = pos - 1; j >= 0; j--){
                vis[ans[j].charCodeAt() - 0] = -1;
            }
            ans = ans.slice(pos + 1);
            ans.push(s[i]);
            vis[t] = i;
        }
    }
    return max;
};

 

原文:https://www.cnblogs.com/qq965921539/p/11381010.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!