美文网首页
leetcode - 无重复的最长子串(3)

leetcode - 无重复的最长子串(3)

作者: 青辰m | 来源:发表于2020-12-14 20:29 被阅读0次

    题目

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

    示例 1:

    输入: s = "abcabcbb"
    输出: 3
    解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

    示例 2:

    输入: s = "bbbbb"
    输出: 1
    解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。

    示例 3:

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

    示例 4:

    输入: s = ""
    输出: 0

    题解

    双指针:
    1.子串中含有重复字符,左指针移动
    2.字串中不含有重复字符, 右指针移动
    str存放当前选中的子串,resultStr始终储存最大值

    /**
     * @param {string} s
     * @return {number}
     */
    var lengthOfLongestSubstring = function(s) {
        let left = 0;
        let right = 0;
        let resultLen = 0;
        let str = '';
        if(s.length <= 1) {
            return s.length;
        }
        while(s.length > right) {
            if(str.indexOf(s[right]) == -1){
                right++;
            } else {
                left++;
            }
            str = s.slice(left,right);
            if(resultLen < str.length) {
                resultLen = str.length;
            }
        }
        return resultLen;
    };
    

    相关文章

      网友评论

          本文标题:leetcode - 无重复的最长子串(3)

          本文链接:https://www.haomeiwen.com/subject/skjbgktx.html