Skip to content

3447. Clear Digits

Difficulty: Easy

LeetCode Problem View on GitHub


3447. Clear Digits

Easy


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.

 

Example 1:

Input: s = "abc"

Output: "abc"

Explanation:

There is no digit in the string.

Example 2:

Input: s = "cb34"

Output: ""

Explanation:

First, we apply the operation on s[2], and s becomes "c4".

Then we apply the operation on s[1], and s becomes "".

 

Constraints:

  • 1 <= s.length <= 100
  • s consists only of lowercase English letters and digits.
  • The input is generated such that it is possible to delete all digits.

Solution

class Solution {
    public String clearDigits(String s) {
        int n = s.length();
        Stack<Character> st = new Stack<>();
        for(int i = n - 1; i >= 0; i--) {
            char current = s.charAt(i);
            if(Character.isDigit(current)) st.add(current);
            else {
                if(st.size() > 0 && Character.isDigit(st.peek())) st.pop();
                else st.add(current);
            }
        }
        String res = "";
        while(st.size() > 0)  res += st.pop();
        return res;
    }
}

Complexity Analysis

  • Time Complexity: O(?)
  • Space Complexity: O(?)

Approach

Detailed explanation of the approach will be added here