当前位置: 首页 > 科技观察

日常算法:无重复字符的最长子串

时间:2023-03-17 00:27:00 科技观察

转载本文请联系三分钟学习前端公众号。给定一个字符串,请找出最长的不包含重复字符的子串的长度。示例1:输入:"abcabcbb"输出:3解释:因为最长的无重复子串是"abc",它的长度为3。示例2:输入:"bbbbb"输出:1解释:因为最长的没有重复字符的子串是“b”,它的长度是1。例3:输入:“pwwkew”输出:3解释:因为最长的没有重复字符的子串是“wke”,它的长度是3。注意你的答案必须是子串,“pwke”是子序列,而不是子串。方案一:维护数组解题思路:用数组维护滑动窗口遍历字符串,判断字符是否在滑动窗口数组中,然后压入数组,删除相同的字符和滑动窗口数组中相同字符之前的字符,然后将当前字符压入数组,然后将max更新为当前最长子串的长度。遍历完返回max画图帮助理解:代码实现:varlengthOfLongestSubstring=function(s){letarr=[],max=0for(leti=0;i