Leetcode16不含有重复字符的最长子字符串
给定一个字符串 s
,请你找出其中不含有重复字符的 最长连续子字符串 的长度。
答题:
/**
\* @param {string} s
\* @return {number}
*/
var lengthOfLongestSubstring = function(s) {
let queue = []
let maxLen = 0
for(let i=0;i<s.length;i++){
• if(queue.includes(s[i])){
• queue.splice(0,1+queue.indexOf(s[i]))
• queue.push(s[i])
• }else{
• queue.push(s[i])
• maxLen = Math.max(maxLen,queue.length)
• }
}
return maxLen
};
实际上是考察你一个滑动窗口的问题,queue中包含了一个不包含重复字符的数组,如果有新加进来的字符在数组中有重复,则剔除queue中的该字符以及之前的字符。没有的话就比较一下当前数组的长度和上一个len的大小,注意这里不是++哦
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。