主要思想:从子序列长度1(flag==1,左指针=0,右指针=flag-1)开始遍历寻找相邻子序列,将找到的子序列push进临时数组中,当一轮结束后用sort()将临时数组排序,再将临时数组中的项依次加入set中去重,然后将长度加1(flag++,左指针=0,右指针=flag-1),循环直至(左指针-右指针)刚好等于字符串长度
时间复杂度:太复杂了我算不出来...O(N*logN)^2? 空间复杂度:O(N)
let as=new Set();
let flag=1;
let l=0;
let r=flag-1;
let temp=new Array();
while(r-l!=t.length){
if(r==t.length){
flag++;
r=flag-1;
l=0;
temp.sort();
temp.forEach((item)=>{
as.add(item);
});
temp=[];
}
temp.push(t.slice(l,r+1));
l++;
r++;
}
let ar='';
as.forEach((item)=>{
ar=ar+item+' ';
})
console.log(ar);