Java实现-删除数字
来源:互联网 发布:tcp监听端口检测失败 编辑:程序博客网 时间:2024/05/23 16:52
给出一个字符串 A, 表示一个 n 位正整数, 删除其中 k 位数字, 使得剩余的数字仍然按照原来的顺序排列产生一个新的正整数。
找到删除 k 个数字之后的最小正整数。
N <= 240, k <= N
样例
给出一个字符串代表的正整数 A 和一个整数 k, 其中 A = 178542
, k = 4
返回一个字符串 "12"
public class Solution { /** *@param A: A positive integer which has N digits, A is a string. *@param k: Remove k digits. *@return: A string */ public String DeleteDigits(String A, int k) { // write your code here if(k==0){int countZero=0;for(int i=0;i<A.length();i++){if(A.charAt(i)!='0')break;else{countZero++;}}return A.substring(countZero);}int []dp=countLow(A);int index=A.length()-1;for(int i=0;i<A.length()-1;i++){if(dp[i]>dp[i+1]){index=i;break;}}String front=A.substring(0, index);String tail=A.substring(index+1);return DeleteDigits(front+tail, k-1); } private static int[] countLow(String A){int []dp=new int[A.length()];int []standard=new int[10];for(int i=A.length()-1;i>=0;i--){ int temp=Integer.parseInt(A.charAt(i)+""); standard[temp]++; for(int j=0;j<temp;j++){ dp[i]+=standard[j]; }}return dp;}}
阅读全文
0 0
- Java实现-删除数字
- Java实现-删除数字
- [java]间隔删除数字
- 删除重复数字,java
- java代码实现贪心算法删除数字问题
- Java实现-删除排序数组中的重复数字1
- Java实现-删除排序数组中的重复数字2
- Java实现数字水印
- Java实现数字排列
- java实现数字组合
- Java实现数字颠倒
- Java实现-数字三角形
- JAVA实现数字反转
- Java实现从一个数字中删除给定个数的数得到一个最大整数
- Java实验(10) 删除重复数字
- Java实现-删除元素
- 删除数字
- 删除数字
- 我的网络编程学习之路——TCP(流)套接字的读和写
- 守护进程
- java炒冷饭系列03 接口修饰符
- java开发交流
- 欢迎使用CSDN-markdown编辑器
- Java实现-删除数字
- 深入理解Spring--动手实现一个简单的SpringIOC容器
- 重新理解一下对象class这个东西
- 通用PopupWindow,几行代码搞定PopupWindow弹窗
- Linux线程
- 闭包
- 1.开始编程吧
- Acrivity跳转到下一个activity
- 环形手势控制条