Skip to content

Commit e63e97c

Browse files
authored
feat: add solutions to lc problem: No.1653 (#911)
No.1653.Minimum Deletions to Make String Balanced
1 parent ceefab4 commit e63e97c

File tree

3 files changed

+123
-0
lines changed

3 files changed

+123
-0
lines changed

solution/1600-1699/1653.Minimum Deletions to Make String Balanced/README.md

+55
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,61 @@ func minimumDeletions(s string) int {
306306
}
307307
```
308308

309+
### **TypeScript**
310+
311+
```ts
312+
function minimumDeletions(s: string): number {
313+
const n = s.length;
314+
const f = new Array(n + 1).fill(0);
315+
let b = 0;
316+
for (let i = 1; i <= n; ++i) {
317+
if (s.charAt(i - 1) === 'b') {
318+
f[i] = f[i - 1];
319+
++b;
320+
} else {
321+
f[i] = Math.min(f[i - 1] + 1, b);
322+
}
323+
}
324+
return f[n];
325+
}
326+
```
327+
328+
```ts
329+
function minimumDeletions(s: string): number {
330+
const n = s.length;
331+
let ans = 0,
332+
b = 0;
333+
for (let i = 0; i < n; ++i) {
334+
if (s.charAt(i) === 'b') {
335+
++b;
336+
} else {
337+
ans = Math.min(ans + 1, b);
338+
}
339+
}
340+
return ans;
341+
}
342+
```
343+
344+
```ts
345+
function minimumDeletions(s: string): number {
346+
let lb = 0,
347+
ra = 0;
348+
const n = s.length;
349+
for (let i = 0; i < n; ++i) {
350+
if (s.charAt(i) === 'a') {
351+
++ra;
352+
}
353+
}
354+
let ans = n;
355+
for (let i = 0; i < n; ++i) {
356+
ra -= s.charAt(i) === 'a' ? 1 : 0;
357+
ans = Math.min(ans, lb + ra);
358+
lb += s.charAt(i) === 'b' ? 1 : 0;
359+
}
360+
return ans;
361+
}
362+
```
363+
309364
### **...**
310365

311366
```

solution/1600-1699/1653.Minimum Deletions to Make String Balanced/README_EN.md

+55
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,61 @@ func minimumDeletions(s string) int {
266266
}
267267
```
268268

269+
### **TypeScript**
270+
271+
```ts
272+
function minimumDeletions(s: string): number {
273+
const n = s.length;
274+
const f = new Array(n + 1).fill(0);
275+
let b = 0;
276+
for (let i = 1; i <= n; ++i) {
277+
if (s.charAt(i - 1) === 'b') {
278+
f[i] = f[i - 1];
279+
++b;
280+
} else {
281+
f[i] = Math.min(f[i - 1] + 1, b);
282+
}
283+
}
284+
return f[n];
285+
}
286+
```
287+
288+
```ts
289+
function minimumDeletions(s: string): number {
290+
const n = s.length;
291+
let ans = 0,
292+
b = 0;
293+
for (let i = 0; i < n; ++i) {
294+
if (s.charAt(i) === 'b') {
295+
++b;
296+
} else {
297+
ans = Math.min(ans + 1, b);
298+
}
299+
}
300+
return ans;
301+
}
302+
```
303+
304+
```ts
305+
function minimumDeletions(s: string): number {
306+
let lb = 0,
307+
ra = 0;
308+
const n = s.length;
309+
for (let i = 0; i < n; ++i) {
310+
if (s.charAt(i) === 'a') {
311+
++ra;
312+
}
313+
}
314+
let ans = n;
315+
for (let i = 0; i < n; ++i) {
316+
ra -= s.charAt(i) === 'a' ? 1 : 0;
317+
ans = Math.min(ans, lb + ra);
318+
lb += s.charAt(i) === 'b' ? 1 : 0;
319+
}
320+
return ans;
321+
}
322+
```
323+
269324
### **...**
270325

271326
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
function minimumDeletions(s: string): number {
2+
const n = s.length;
3+
let ans = 0,
4+
b = 0;
5+
for (let i = 0; i < n; ++i) {
6+
if (s.charAt(i) === 'b') {
7+
++b;
8+
} else {
9+
ans = Math.min(ans + 1, b);
10+
}
11+
}
12+
return ans;
13+
}

0 commit comments

Comments
 (0)