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 <= 100sconsists 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