题解 | #最长不含重复字符的子字符串#

最长不含重复字符的子字符串

http://www.nowcoder.com/practice/48d2ff79b8564c40a50fa79f9d5fa9c7

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param s string字符串 
 * @return int整型
 */
export function lengthOfLongestSubstring(s: string): number {
    // write code here
    const wordMap = new Map();
    let maxLen = 1,lastVal = 1;
    wordMap.set(s[0], 0);
    for(let i=1;i<s.length;i++) {
        const lastSimilarIdx = wordMap.get(s[i]);
        if(lastSimilarIdx === undefined) {
            lastVal += 1;
        } else {
            const dis = i - lastSimilarIdx;
            if(dis > lastVal) {
                lastVal += 1;
            } else {
                lastVal = dis;
            }
        }
        maxLen = Math.max(maxLen, lastVal);
        wordMap.set(s[i], i);
    }
    return maxLen;
}
全部评论

相关推荐

神哥不得了:神哥来啦~1.建议不要包装,很容易问穿2.没日常也能找到暑期3.简历模板换一下,字体和版式看着好难受,而且最好压缩到一页,技术的倒数第2和3重复啦,项目建议换两个高质量的上去,如果时间够的话,八股就把高频top50的题目多巩固几遍,吃透,注意不要找假高频,这样绝对能找到暑期
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务