寻找字符串中最长不重复片段-暴力破解法

摘要:使用两个循环,分别作为截取字符串片段的前后指针,将没有重复的片段放入数组,最终得到的通过字符串长度排序,从而得到结果

 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);

 

posted @ 2024-08-30 00:14  大豆F4  阅读(8)  评论(0编辑  收藏  举报