Leetcode16不含有重復(fù)字符的最長(zhǎng)子字符串
給定一個(gè)字符串 s ,請(qǐng)你找出其中不含有重復(fù)字符的 最長(zhǎng)連續(xù)子字符串 的長(zhǎng)度。
答題:
/**
\* @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
};
實(shí)際上是考察你一個(gè)滑動(dòng)窗口的問(wèn)題,queue中包含了一個(gè)不包含重復(fù)字符的數(shù)組,如果有新加進(jìn)來(lái)的字符在數(shù)組中有重復(fù),則剔除queue中的該字符以及之前的字符。沒(méi)有的話(huà)就比較一下當(dāng)前數(shù)組的長(zhǎng)度和上一個(gè)len的大小,注意這里不是++哦