From d51295547bf2a813ff6356294e597948cf1a5573 Mon Sep 17 00:00:00 2001 From: thinkasany <480968828@qq.com> Date: Sun, 5 Mar 2023 00:31:47 +0800 Subject: [PATCH] feat: add solutions to lc problem: No.1653 --- .../README.md | 55 +++++++++++++++++++ .../README_EN.md | 55 +++++++++++++++++++ .../Solution.ts | 13 +++++ 3 files changed, 123 insertions(+) create mode 100644 solution/1600-1699/1653.Minimum Deletions to Make String Balanced/Solution.ts diff --git a/solution/1600-1699/1653.Minimum Deletions to Make String Balanced/README.md b/solution/1600-1699/1653.Minimum Deletions to Make String Balanced/README.md index bf5b4e32f910a..66e8b418ff270 100644 --- a/solution/1600-1699/1653.Minimum Deletions to Make String Balanced/README.md +++ b/solution/1600-1699/1653.Minimum Deletions to Make String Balanced/README.md @@ -306,6 +306,61 @@ func minimumDeletions(s string) int { } ``` +### **TypeScript** + +```ts +function minimumDeletions(s: string): number { + const n = s.length; + const f = new Array(n + 1).fill(0); + let b = 0; + for (let i = 1; i <= n; ++i) { + if (s.charAt(i - 1) === 'b') { + f[i] = f[i - 1]; + ++b; + } else { + f[i] = Math.min(f[i - 1] + 1, b); + } + } + return f[n]; +} +``` + +```ts +function minimumDeletions(s: string): number { + const n = s.length; + let ans = 0, + b = 0; + for (let i = 0; i < n; ++i) { + if (s.charAt(i) === 'b') { + ++b; + } else { + ans = Math.min(ans + 1, b); + } + } + return ans; +} +``` + +```ts +function minimumDeletions(s: string): number { + let lb = 0, + ra = 0; + const n = s.length; + for (let i = 0; i < n; ++i) { + if (s.charAt(i) === 'a') { + ++ra; + } + } + let ans = n; + for (let i = 0; i < n; ++i) { + ra -= s.charAt(i) === 'a' ? 1 : 0; + ans = Math.min(ans, lb + ra); + lb += s.charAt(i) === 'b' ? 1 : 0; + } + return ans; +} +``` + ### **...** ``` diff --git a/solution/1600-1699/1653.Minimum Deletions to Make String Balanced/README_EN.md b/solution/1600-1699/1653.Minimum Deletions to Make String Balanced/README_EN.md index 1032fa2f12986..30eb9392a6635 100644 --- a/solution/1600-1699/1653.Minimum Deletions to Make String Balanced/README_EN.md +++ b/solution/1600-1699/1653.Minimum Deletions to Make String Balanced/README_EN.md @@ -266,6 +266,61 @@ func minimumDeletions(s string) int { } ``` +### **TypeScript** + +```ts +function minimumDeletions(s: string): number { + const n = s.length; + const f = new Array(n + 1).fill(0); + let b = 0; + for (let i = 1; i <= n; ++i) { + if (s.charAt(i - 1) === 'b') { + f[i] = f[i - 1]; + ++b; + } else { + f[i] = Math.min(f[i - 1] + 1, b); + } + } + return f[n]; +} +``` + +```ts +function minimumDeletions(s: string): number { + const n = s.length; + let ans = 0, + b = 0; + for (let i = 0; i < n; ++i) { + if (s.charAt(i) === 'b') { + ++b; + } else { + ans = Math.min(ans + 1, b); + } + } + return ans; +} +``` + +```ts +function minimumDeletions(s: string): number { + let lb = 0, + ra = 0; + const n = s.length; + for (let i = 0; i < n; ++i) { + if (s.charAt(i) === 'a') { + ++ra; + } + } + let ans = n; + for (let i = 0; i < n; ++i) { + ra -= s.charAt(i) === 'a' ? 1 : 0; + ans = Math.min(ans, lb + ra); + lb += s.charAt(i) === 'b' ? 1 : 0; + } + return ans; +} +``` + ### **...** ``` diff --git a/solution/1600-1699/1653.Minimum Deletions to Make String Balanced/Solution.ts b/solution/1600-1699/1653.Minimum Deletions to Make String Balanced/Solution.ts new file mode 100644 index 0000000000000..35cdc37e29f98 --- /dev/null +++ b/solution/1600-1699/1653.Minimum Deletions to Make String Balanced/Solution.ts @@ -0,0 +1,13 @@ +function minimumDeletions(s: string): number { + const n = s.length; + let ans = 0, + b = 0; + for (let i = 0; i < n; ++i) { + if (s.charAt(i) === 'b') { + ++b; + } else { + ans = Math.min(ans + 1, b); + } + } + return ans; +}