Untitled

 avatar
unknown
java
2 months ago
1.1 kB
2
Indexable
import java.util.*;

public class SmallestStringAfterRemovingDollar {
    public static String removeDollarChars(String s) {
        Deque<Character> stack = new ArrayDeque<>();

        for (char ch : s.toCharArray()) {
            if (ch == '$') {
                if (!stack.isEmpty()) {
                    removeSmallest(stack);
                }
            } else {
                stack.push(ch);
            }
        }

        StringBuilder result = new StringBuilder();
        while (!stack.isEmpty()) {
            result.append(stack.pollLast()); // Retrieve characters in order
        }
        return result.toString();
    }

    private static void removeSmallest(Deque<Character> stack) {
        List<Character> temp = new ArrayList<>(stack);
        char minChar = Collections.min(temp);
        stack.removeLastOccurrence(minChar);
    }

    public static void main(String[] args) {
        String input1 = "acba$d";
        System.out.println(removeDollarChars(input1)); // Output: "acbd"

        String input2 = "pqr";
        System.out.println(removeDollarChars(input2)); // Output: "pqr"
    }
}
Editor is loading...
Leave a Comment