| 12345678910111213141516171819202122232425262728293031323334353637383940414243 | 
							- package _402;
 
- class Solution {
 
-     public String removeKdigits(String num, int k) {
 
-         if (k <= 0)
 
-             return num;
 
-         int len = num.length();
 
-         StringBuilder res = new StringBuilder(len);
 
-         return removeKdigitsIter(num, len - k, -1, res);
 
-     }
 
-     /**
 
-      * @param left Number of the digits left
 
-      * @param head The head index of current sub string
 
-      * @param res  Temp sb to build result
 
-      */
 
-     private String removeKdigitsIter(String num, int left, int head, StringBuilder res) {
 
-         if (left <= 0)
 
-             return res.length() == 0 ? "0" : res.toString();
 
-         head++;
 
-         char min = num.charAt(head);
 
-         int tail = num.length() - left + 1;
 
-         for (int i = head; i < tail; i++) {
 
-             if (num.charAt(i) < min) {
 
-                 min = num.charAt(i);
 
-                 head = i;
 
-             }
 
-         }
 
-         boolean notLeading0 = res.length() != 0 || min != '0';
 
-         if (notLeading0)
 
-             res.append(min);
 
-         return removeKdigitsIter(num, left - 1, head, res);
 
-     }
 
-     private static void testRemoveKdigits(String num, int k) {
 
-         Solution solution = new Solution();
 
-         System.out.println(solution.removeKdigits(num, k));
 
-     }
 
-     public static void main(String[] args) {
 
-         testRemoveKdigits("4325643", 0);
 
-     }
 
- }
 
 
  |