【每日一题】LeetCode 763. 划分字母区间 TypeScript

【每日一题】LeetCode 763. 划分字母区间 TypeScript
给你一个字符串s。我们要把这个字符串划分为尽可能多的片段同一字母最多出现在一个片段中。例如字符串ababcc能够被分为[abab, cc]但类似[aba, bcc]或[ab, ab, cc]的划分是非法的。注意划分结果需要满足将所有划分结果按顺序连接得到的字符串仍然是s。返回一个表示每个字符串片段的长度的列表。示例 1输入s ababcbacadefegdehijhklij输出[9,7,8]解释划分结果为 ababcbaca、defegde、hijhklij 。 每个字母最多出现在一个片段中。 像 ababcbacadefegde, hijhklij 这样的划分是错误的因为划分的片段数较少。示例 2输入s eccbbbbdec输出[10]提示1 s.length 500s仅由小写英文字母组成function partitionLabels(s: string): number[] { const n s.length const last new Array(26).fill(0) for(let i0;in;i){ last[s.charCodeAt(i)-97] i } const result [] let start 0 let end 0 for(let i0;in;i){ end Math.max(end,last[s.charCodeAt(i)-97]) if(iend){ result.push(end-start1) start end 1 } } return result };共勉