【LeetCode 0003】【滑动窗口】无重复字符的最长子串
- Longest Substring Without Repeating Characters
Given a string s
, find the length of the longest substring without repeating characters.
Example 1:
**Input:** s = "abcabcbb"
**Output:** 3
**Explanation:** The answer is "abc", with the length of 3.
Example 2:
**Input:** s = "bbbbb"
**Output:** 1
**Explanation:** The answer is "b", with the length of 1.
Example 3:
**Input:** s = "pwwkew"
**Output:** 3
**Explanation:** The answer is "wke", with the length of 3.
Notice that the answer must be a substring, "pwke" is a subsequence and not a substring.
Constraints:
0 <= s.length <= 5 * 10^4
s
consists of English letters, digits, symbols and spaces.
JavaScript Solution
/**
* @param {string} s
* @return {number}
*/
var lengthOfLongestSubstring = function(s) {
let ans = 0
if('' === s){
return ans
}
let [left,right] = [0,-1]
// matain the mapping from character to isPresent Flag
let flags = {}
while(left < s.length){
// mark all different elements as 1s
if(( right+1 ) < s.length && !flags[s[right+1]] ){
flags[s[ right+1 ]] = 1
right++
ans = Math.max(ans,right-left+1)
}else{
// sliding leftmost 1s to 0s
flags[s[left]] = 0
left++
}
}
return ans
};
原文地址:https://blog.csdn.net/avenccssddnn/article/details/140675848
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!