题目地址:链接
思路:
- 使用map记录最远字符串的地址
- 重新遍历,如果当前内容等于最远字符串地址,那么入队列
functionpartitionLabels(s:string):number[]{letans=[];constn=s.length;constmap=newMap();for(leti=0;i<n;i++){map.set(s[i],i);}letmaxIdx=0;for(leti=0;i<n;i++){letq=map.get(s[i]);maxIdx=Math.max(maxIdx,q);if(maxIdx<=i){ans.push(i);maxIdx++;}}ans=ans.map((num,idx)=>{if(idx)returnnum-ans[idx-1];elsereturnnum+1})returnans;};