解题思路:
注意事项:
代码源自CSDN博主 yours_棒棒糖
参考代码:
public static void main(String[] args) { Scanner sc = new Scanner(System.in); String num = sc.next(); int k = sc.nextInt(); System.out.println(removeKDigits(num,k)); } public static String removeKDigits(String num,int k){ //新整数的最终长度 = 原整数长度 - k int newLength = num.length()-k; //创建一个栈,用于接收所有的数字 char[] stack = new char[num.length()]; int top = 0; for (int i = 0;i<num.length();i++){ //遍历当前数字 char c = num.charAt(i); //当栈顶数字小于遍历到的当前数字时,栈顶数字出栈(相当于删除数字) while (top > 0 && stack[top -1]<c && k>0){ top = top -1; k = k -1; } //遍历到的当前数字入栈 stack[top++]= c; } //找到栈中第1个非零数字的位置,以此构建新的整数字符串 int offset = 0; while (offset<newLength && stack[offset] == '0'){ offset++; } return offset == newLength? "0" : new String(stack,offset,newLength -offset); }
0.0分
1 人评分
求组合数 (C语言代码)浏览:1206 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:821 |
C二级辅导-统计字符 (C语言代码)浏览:695 |
C语言程序设计教程(第三版)课后习题10.1 (C++代码)浏览:529 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:622 |
P1044 (C++代码)浏览:550 |
删除数组中的0元素 (C语言代码)浏览:2145 |
C语言程序设计教程(第三版)课后习题7.5 (C++代码)浏览:1460 |
计算质因子 (Java代码)浏览:789 |
2005年春浙江省计算机等级考试二级C 编程题(1) (C语言描述if-else if语句)浏览:1088 |