import java.util.Collections; import java.util.LinkedList; import java.util.Scanner; import java.util.Stack; public class Main{ public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner=new Scanner(System.in); while(scanner.hasNext()) { String num=scanner.nextLine(); int k=Integer.parseInt(scanner.nextLine()); LinkedList<Character> stack = new LinkedList<Character>(); for(char digit : num.toCharArray()) { while(stack.size() > 0 && k > 0 && stack.peekLast() > digit) { stack.removeLast(); k -= 1; } stack.addLast(digit); } /* remove the remaining digits from the tail. */ for(int i=0; i<k; ++i) { stack.removeLast(); } // build the final string, while removing the leading zeros. StringBuilder ret = new StringBuilder(); boolean leadingZero = true; for(char digit: stack) { if(leadingZero && digit == '0') continue; leadingZero = false; ret.append(digit); } /* return the final string */ if (ret.length() == 0) { System.out.println( "0"); } else { System.out.println( ret.toString()); } // Stack<Character> stack=new Stack<>(); // char[] c=num.toCharArray(); // for(char c1:c) { // while(stack.size()>0&&k>0&&stack.peek()>c1) { // stack.pop(); // k--; // } // stack.push(c1); // } // for(int i=0;i<k;i++) { // stack.pop(); // } // StringBuilder sb=new StringBuilder(); // while(!stack.isEmpty()) { // sb.append(stack.pop()); // } // sb.reverse(); // if(sb.length()==0) { // System.out.println(0); // } // else { // System.out.println(Integer.parseInt(sb.toString())); // } } } } |
Double click to view unformatted code.