问题描述:
Given a string, find the length of the longest substring without repeating characters.
Examples:
Given "abcabcbb"
, the answer is "abc"
, which the length is 3.
Given "bbbbb"
, the answer is "b"
, with the length of 1.
Given "pwwkew"
, the answer is "wke"
, with the length of 3. Note that the answer must be a substring, "pwke"
is a subsequence and not a substring.
问题思路:
(1)审清题目:最长不重复的子串
(2)将第i个字符放在数组arr中,判断下一个字符有没有在arr中出现,如果出现,则重新从i-len+1处开始。
(3)需要记录下每次循环的arr的最大长度
code:
var lengthOfLongestSubstring = function(s) { var arr=[]; var str = s.split(''); var max = 0; var len = 0; //arr[]数组的长度 for(var i=0;i<str.length;i++){ if(arr.indexOf(str[i])==-1){ arr.push(str[i]); len = len + 1; max = max > len ? max : len; }else{ i = i - len + 1; arr.splice(0, len, str[i]); len = 1; } } return max; };