// 3174. Clear Digits
#include "leetcode.h"
/*
* you are given a string 's'. your task is to remove all digits by doing this
* operation repeatedly: delete the first digit and the closest non digit
* character to its left. return the resulting string after removing all digits.
*/
char *clearDigits(char *s) {
int n = strlen(s), top = -1;
char *stack = (char *)malloc((n + 1) * sizeof(char));
for (int i = 0; i < n; i++) {
if (isdigit(s[i])) {
if (top >= 0)
top--;
} else
stack[++top] = s[i];
}
stack[++top] = '\0';
return stack;
}
int main() {
char *s1 = "abc", *s2 = "cb34";
printf("%s\n", clearDigits(s1)); // expect: abc
printf("%s\n", clearDigits(s2)); // expect: null
}