• Algorithm——无重复字符的最长子串


    一、问题

    给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

    示例 1:
    
    输入: "abcabcbb"
    输出: 3 
    解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
    示例 2:
    
    输入: "bbbbb"
    输出: 1
    解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
    示例 3:
    
    输入: "pwwkew"
    输出: 3
    解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
         请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

    二、解决

    /**
     * @param {string} s
     * @return {number}
     */
    var lengthOfLongestSubstring = function(s) {
        //遇到一个重复元素时,结束
        let max = 0;
        let countArr = [];
        let arr = s.split('');
        for (let i = 0; i < arr.length; i++) {
            countArr.push(arr[i]);
            //没结尾
            if (arr[i+1] != undefined) {
                //不包含下一个元素
                if (countArr.indexOf(arr[i+1]) < 0) {
                    if (max < countArr.length) {
                        max = countArr.length; 
                    } 
                } 
                //包含下一个元素
                else {
                    countArr.splice(0, countArr.indexOf(arr[i+1])+1);
                    //console.log(countArr);
                }           
            } 
            //结束
            else {
                max++;
            }  
        }
       
        //console.log(max);
        return max;
    };
  • 相关阅读:
    spingboot集成jpa(二)
    datanode与namenode的通信
    Yarn NodeManager restart
    hadoop上线和下线节点
    Spark读取文件
    eclipse安装中文补丁包
    eclipse中maven打包
    (转) eclipse安装lombok
    Windows 访问 Oracle
    wCF 问题收集页
  • 原文地址:https://www.cnblogs.com/bbcfive/p/10634396.html
Copyright © 2020-2023  润新知