题解 | #左旋转字符串#

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

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

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 考虑以字串第i个元素结尾的不重复子串的长度和该子串,substr初始化为s[0],arr[0]=1
 * 
 * @param s string字符串 
 * @return int整型
 */
function lengthOfLongestSubstring( s ) {
    if(!s){
        return 0
    }
    let substr = s[0]
    let arr = [1]
    for(let i =1;i<s.length;i++){
        let index = substr.lastIndexOf(s[i]) // s[i]在上一步的最大字串中出现
        if(index >-1){
            arr[i] = substr.length - index
            substr= substr.slice(index +1 ) + s[i] // 更新状态
        }else{
            substr += s[i]
            arr[i] = arr[i-1]+  1  // 否则拼接
            
        }
    }
    return Math.max(...arr)
    // write code here
}
module.exports = {
    lengthOfLongestSubstring : lengthOfLongestSubstring
};
全部评论

相关推荐

赏个offer求你了:友塔HR还专门加我告诉我初筛不通过😂
点赞 评论 收藏
分享
感性的干饭人在线蹲牛友:🐮 应该是在嘉定这边叭,禾赛大楼挺好看的
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务