寻找字符串中最长不重复片段-暴力破解法
摘要:使用两个循环,分别作为截取字符串片段的前后指针,将没有重复的片段放入数组,最终得到的通过字符串长度排序,从而得到结果
1 // 暴力破解法 2 function getStr(str) { 3 const arr = []; 4 const strLength = str.length; 5 // 前指针 6 for(let i = 0; i < strLength - 1; i++) { 7 // 后指针 8 for(let j = i + 1; j < strLength; j++){ 9 const subStr = str.substring(i, j+1); 10 const subStrLength = subStr.length; 11 const subSet = new Set([...subStr.split('')]); 12 if (subSet.size === subStrLength) { 13 arr.push(subStr) 14 } else { 15 break; 16 } 17 } 18 } 19 const sortArr = arr.sort((a, b)=>{ 20 return b.length - a.length; 21 }); 22 23 return sortArr[0] || ''; 24 } 25 26 27 // 测试代码 28 const str = 'abcdefgabcdabcdefghocoo'; 29 getStr(str);