From fa1d0e1d8c122f8c7939b8a9c7c4638fb177f180 Mon Sep 17 00:00:00 2001 From: zhaocchen Date: Sun, 17 Oct 2021 16:55:18 +0800 Subject: [PATCH] feat: add typescript solution to lc problem: No.0763.Partition Labels --- .../0700-0799/0763.Partition Labels/README.md | 22 +++++++++++++++++++ .../0763.Partition Labels/README_EN.md | 22 +++++++++++++++++++ .../0763.Partition Labels/Solution.ts | 17 ++++++++++++++ 3 files changed, 61 insertions(+) create mode 100644 solution/0700-0799/0763.Partition Labels/Solution.ts 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