搜狐2017秋招研发工程师编程题求解

[编程题] 保留最大的数

时间限制:1秒

空间限制:32768K

给定一个十进制的正整数number,选择从里面去掉一部分数字,希望保留下来的数字组成的正整数最大。
输入描述:
输入为两行内容,第一行是正整数number,1 ≤ length(number) ≤ 1000。第二行是希望去掉的数字数量cnt 1 ≤ cnt < length(number)。


输出描述:
输出保留下来的结果。

输入例子1:
325
1

输出例子1:
35  
import java.util.*;
public class Main {
 public static void main(String[] args) {
  Scanner in=new Scanner(System.in);
  while(in.hasNext()){
   StringBuffer number= new StringBuffer();
   number.append(in.next());
   int n=in.nextInt();
   while(n>0){
    number.deleteCharAt(min(number));
    n--;
   }
   System.out.println(number);
  }
 }
 
 
 
 //求数组中最小值的位置k
 public static int min(StringBuffer n){
  int[] num=new int[n.length()];
  String[] n1=n.toString().split("");
  for(int i=0;i<n.length();i++){
   num[i]=Integer.parseInt(n1[i]);
  }
  int m=num[0];
  int k=0;
  for(int i=0;i<num.length;i++){
   if(m>num[i]){
    m=num[i];
    k=i;
   }
  }
  return k;
  
 }
}
本地输出:35

#搜狐#
全部评论
这个牛客上有原题,但是普遍都是过了20%
点赞 回复
分享
发布于 2017-09-04 19:07
楼主我觉得你这个思路可能有问题哦,我这里没有java环境没有测试,不过你是找到最小的数,这样的话对于用例: 7462351 2 你的输出是74635, 但是76351才是最大的。
点赞 回复
分享
发布于 2017-09-05 11:36
联易融
校招火热招聘中
官网直投

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务