题目链接:3. Longest Substring Without Repeating Characters
概述
这个题目给定一个字符串s
,找出其中不含有重复字符的最长子串
的长度。
思路
该题目可使用 滑动窗口 来做。
具体来说,使用两个指针left
、right
来确定出一个子串的范围,如果s[right]
已经在s[left...right-1]
中出现过,则将left
向右挪,反之则将right
向右挪,直到right
到达s
结尾。
通过这样对s
进行一次扫描,即可得到最长子串。
实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
var lengthOfLongestSubstring = function(s) { var maxLength = 0; var left = 0, right = 1; while(right <= s.length){ if(maxLength < right - left){ maxLength = right - left; } if(s.substring(left, right).indexOf(s[right]) != -1){ left++; } else{ right++; } } return maxLength; };
|
题解合集