删除最大数

寻找最大数

时间限制:1000 ms  |  内存限制:65535 KB
难度:2
 
描述

请在整数 n 中删除m个数字, 使得余下的数字按原次序组成的新数最大,

比如当n=92081346718538,m=10时,则新的最大数是9888

 

 
输入
第一行输入一个正整数T,表示有T组测试数据
每组测试数据占一行,每行有两个数n,m(n可能是一个很大的整数,但其位数不超过100位,并且保证数据首位非0,m小于整数n的位数)
输出
每组测试数据的输出占一行,输出剩余的数字按原次序组成的最大新数
样例输入
2
92081346718538 10
1008908 5
样例输出
9888
98


代码:

package acm14;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        for (int group=0;group<n;group++) {
            String number = input.next();
            int digtal = input.nextInt();
            
            int index = 0;//标记位置
            int end = digtal;
            int len = number.length();
            int flag = 0;
            int i = 0;
            char t;
            char[]a = number.toCharArray();
            while (end < len) {
                for (i = flag = index,t = a[i];i<=end;i++) {
                     if(a[i] > t)  
                      {  
                            flag = i;  
                            t = a[i];  
                      }  
                }
                 index = flag+1;  
                 end++;  
                 System.out.print(t);
            }
            System.out.println();
            
            
            
        }
    }
    
}

 

posted on 2016-04-01 14:28  airycode  阅读(334)  评论(0编辑  收藏  举报

导航