給定一個字符串,請你找出其中不含有重復字符的 最長子串 的長度。
示例 1:
輸入: "abcabcbb"
輸出: 3
解釋: 因為無重復字符的最長子串是 "abc",所以其長度為 3。
示例 2:
輸入: "bbbbb"
輸出: 1
解釋: 因為無重復字符的最長子串是 "b",所以其長度為 1。
示例 3:
輸入: "pwwkew"
輸出: 3
解釋: 因為無重復字符的最長子串是 "wke",所以其長度為 3。
請注意,你的答案必須是 子串 的長度,"pwke" 是一個子序列,不是子串。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
--------------------------------------------------------------------------
一、暴力破解:利用一個數組arr存儲遍歷出的每一個字符,如果遇到相同的,則從0位開始一直到重復的字符全部splice出去
1 /** 2 * @param {string} s 3 * @return {number} 4 */ 5 var lengthOfLongestSubstring = function(s) { 6 let arr = new Array() 7 let max = 0 8 for(let item in s) { 9 if (arr.indexOf(s[item]) != -1) { 10 arr.splice(0,arr.indexOf(s[item])+1) 11 12 } 13 arr.push(s[item]) 14 max = Math.max(max,arr.length) 15 } 16 return max 17 }; 18 lengthOfLongestSubstring('abcdk')