1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| class Solution { public String removeKdigits(String num, int k) { StringBuilder sb = new StringBuilder();
for (int i = 0; i < num.length(); i++) { char c = num.charAt(i); while (k > 0 && sb.length() > 0 && c < sb.charAt(sb.length() - 1)) { sb.deleteCharAt(sb.length() - 1); k--; }
sb.append(c); }
while (k > 0) { sb.deleteCharAt(sb.length() - 1); k--; }
String res = sb.toString(); int firstNonZeroIndex = 0; while (firstNonZeroIndex < res.length() && res.charAt(firstNonZeroIndex) == '0') { firstNonZeroIndex++; } if (firstNonZeroIndex == res.length()) { return "0"; } else { return res.substring(firstNonZeroIndex); } } }
|