Untitled
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