diff --git a/solution/0700-0799/0763.Partition Labels/README.md b/solution/0700-0799/0763.Partition Labels/README.md index d052ae228f585..2a28dbb470224 100644 --- a/solution/0700-0799/0763.Partition Labels/README.md +++ b/solution/0700-0799/0763.Partition Labels/README.md @@ -53,6 +53,28 @@ ``` +### **TypeScript** + +```ts +function partitionLabels(s: string): number[] { + const n = s.length; + let last = new Array(128); + for (let i = 0; i < n; i++) { + last[s.charCodeAt(i)] = i; + } + let ans = []; + let left = 0, right = 0; + for (let i = 0; i < n; i++) { + right = Math.max(right, last[s.charCodeAt(i)]); + if (i == right) { + ans.push(right - left + 1); + left = right + 1; + } + } + return ans; +}; +``` + ### **...** ``` diff --git a/solution/0700-0799/0763.Partition Labels/README_EN.md b/solution/0700-0799/0763.Partition Labels/README_EN.md index 9dba1c53a4d76..28f75bb64f933 100644 --- a/solution/0700-0799/0763.Partition Labels/README_EN.md +++ b/solution/0700-0799/0763.Partition Labels/README_EN.md @@ -47,6 +47,28 @@ A partition like "ababcbacadefegde", "hijhklij" is incorrect ``` +### **TypeScript** + +```ts +function partitionLabels(s: string): number[] { + const n = s.length; + let last = new Array(128); + for (let i = 0; i < n; i++) { + last[s.charCodeAt(i)] = i; + } + let ans = []; + let left = 0, right = 0; + for (let i = 0; i < n; i++) { + right = Math.max(right, last[s.charCodeAt(i)]); + if (i == right) { + ans.push(right - left + 1); + left = right + 1; + } + } + return ans; +}; +``` + ### **...** ``` diff --git a/solution/0700-0799/0763.Partition Labels/Solution.ts b/solution/0700-0799/0763.Partition Labels/Solution.ts new file mode 100644 index 0000000000000..82ff382552215 --- /dev/null +++ b/solution/0700-0799/0763.Partition Labels/Solution.ts @@ -0,0 +1,17 @@ +function partitionLabels(s: string): number[] { + const n = s.length; + let last = new Array(128); + for (let i = 0; i < n; i++) { + last[s.charCodeAt(i)] = i; + } + let ans = []; + let left = 0, right = 0; + for (let i = 0; i < n; i++) { + right = Math.max(right, last[s.charCodeAt(i)]); + if (i == right) { + ans.push(right - left + 1); + left = right + 1; + } + } + return ans; +}; \ No newline at end of file