首页 > 编程语言 >#前端算法救赎系列#LeetCode03.无重复字符的最长子串

#前端算法救赎系列#LeetCode03.无重复字符的最长子串

时间:2022-08-26 10:01:30浏览次数:87  
标签:子串 字符 set 重复 let LeetCode03 最长 救赎

3. 无重复字符的最长子串

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

示例 1:

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

示例 3:

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

思路分析:

滑动窗口:滑动窗口不断向前,当前元素不在set中 就加入set 然后更新最大长度,继续下一轮循环。若当前元素已在set中,set中有重复元素,则元素直到滑动窗口内没有重复的元素

/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLongestSubstring = function(s) {
    let left=0,right
    let set=new Set()
    let len=s.length
    let size=0
    for(let right=0;right<len;right++){
        if(!set.has(s[right])){
            set.add(s[right])
            size=Math.max(size,set.size)
        }else {
            while(set.has(s[right])){
                set.delete(s[left])
                left++
            }
            set.add(s[right])
        }
    }
    return size
};

思路来源:全栈潇晨

https://leetcode.cn/problems/longest-substring-without-repeating-characters/solution/3-wu-zhong-fu-zi-fu-de-zui-chang-zi-chua-b6ex/

标签:子串,字符,set,重复,let,LeetCode03,最长,救赎
From: https://www.cnblogs.com/qinghuanjing/p/16626578.html

相关文章

  • 一个字符串回文子串数量最大的排列 证明
    CF1063A一个字符串回文子串数量最大的排列证明Problem-1063A-Codeforces若将一个字符串任意排列,要使其中的回文子串数量最多,按字典序排序是一种方法。首先,在一个......
  • #前端算法救赎系列#LeetCode01.两数之和
    1.两数之和给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。示例1:输入:nums=[2,7,11,1......
  • 无重复字符的最长子串
    题目给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。示例输入:s="abcabcbb"输出:3解释:因为无重复字符的最长子串是"abc",所以其长度为3。......
  • 76. 最小覆盖子串
    76.最小覆盖子串给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串""。 注意:对......
  • 3. 无重复字符的最长子串
    给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度(子串,连续,子序列,可以不连续)。提示:0<=s.length<=5*104s 由英文字母、数字、符号和空格组......
  • 2022牛客多校 补赛 C Cmostp(区间结尾本质不同子串)
    多次询问求一个串的结尾在\([l,r]\)之间的本质不同子串个数。此题是求一个区间的不同元素的问题,使用扫描线的方法解决,即每次加入一个元素就将这个位置\(+1\),这个元素上一......
  • leetcode5-最长回文子串
    最长回文子串中心扩展法从中心向两侧扩展,分为两种情况:一种是奇数长度,一种是偶数长度,需要分开讨论。classSolution{publicStringlongestPalindrome(Strings)......
  • 459.repeated-substring-pattern 重复的子串
    假设一个字符串,是由一个重复的子串组成的,那么它的最长相等前后缀必然与整个字符串的必然相差了一个重复子串的长度。假设整个字符串的长度为len,那么next[len-1]+1就是......
  • 力扣练习——70 串联所有单词的子串
    1.问题描述给定一个字符串s和一些长度相同的单词words。找出s中恰好可以由words中所有单词串联形成的子串的起始位置。注意子串要与words中的单词完全匹配,中间......
  • NC13230 合并回文子串
    题目链接题目题目描述输入两个字符串A和B,合并成一个串C,属于A和B的字符在C中顺序保持不变。如"abc"和"xyz"可以被组合成"axbycz"或"abxcyz"等。我们定义字符串的价值为......