From ce2daba66586d89e0222f6d3ec44cc3408875552 Mon Sep 17 00:00:00 2001
From: Jack Sangdahl <jack@pngu.org>
Date: Mon, 29 Jul 2024 18:41:50 -0600
Subject: 1653. minimum deletions to make string balanced

---
 min_deletions_balance_str.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 min_deletions_balance_str.c

(limited to 'min_deletions_balance_str.c')

diff --git a/min_deletions_balance_str.c b/min_deletions_balance_str.c
new file mode 100644
index 0000000..6daeda1
--- /dev/null
+++ b/min_deletions_balance_str.c
@@ -0,0 +1,29 @@
+// 1653. Minimum Deletions to Make String Balanced
+#include "leetcode.h"
+
+/*
+ * you are given a string 's' consisting of only characters 'a' and 'b'. you can
+ * delete any number of characters in 's' to make 's' balanced. 's' is balanced
+ * if there is no pair of indices '(i, j)' such that 'i < j' and 's[i] = b' and
+ * 's[j] = a'. return the minimum number of deletions needed to make 's'
+ * balanced.
+ */
+
+int minimumDeletions(char *s) {
+  int cnt = 0, ans = 0;
+  for (int i = 0; s[i] != '\0'; i++) {
+    if (s[i] == 'b') {
+      cnt++;
+    } else if (cnt) {
+      ans++;
+      cnt--;
+    }
+  }
+  return ans;
+}
+
+int main() {
+  char *s1 = "aababbab", *s2 = "bbaaaaabb";
+  printf("%d\n", minimumDeletions(s1)); // expect: 2
+  printf("%d\n", minimumDeletions(s2)); // expect: 2
+}
-- 
cgit v1.2.3