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(); boolean leadingZero=true; for(char c1:stack) { if(leadingZero&&c1=='0') { continue; } leadingZero=false; sb.append(c1); } // while(!stack.isEmpty()) { // sb.append(stack.pop()); // } // sb.reverse(); if(sb.length()==0) { System.out.println(0); } else { System.out.println(sb.toString()); } } } } |
Double click to view unformatted code.