Untitled
unknown
java
10 months ago
1.1 kB
5
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