整数m去掉n位后剩下最大(小)值
题目描述
给定一个正整数(<=255位),从中删去n位后,使得剩下的数字组成的新数最小(大);
思路:从左到右开始扫描,两两比较,如果是前一位比后一位大,则删去前大的一位,直到删完所有的n位;
【从论坛看到的一个题目,觉得挺好的,代码是论坛的大佬写的,不过好像没处理好以0开头的问题。】
再贴一个c写的吧,这也写得挺好的:https://blog.csdn.net/liveas/article/details/5732759
public static void main(String[] args) {
// TODO Auto-generated method stub
int i,j,k,length,n,m;
Scanner sc=new Scanner(System.in); //warning :leak: 'sc' is never closed
String s=sc.nextLine(); //输入的整型数;
char c;
n=sc.nextInt();
int index;
sc.close();
if(n>s.length()) //如果删除的长度比输入的整数本身还要大就报错;
{
System.out.println("Error!");
return;
}for(i=0;i<n;i++)
{
j=0; //j重新从0下标开始;
while(j<s.length())
{
if(j==s.length()-1)
{
s=s.substring(0, j);
break;
}
index=j+1;
c=s.charAt(index);
if(s.charAt(j)-'0'<=(c-'0'))
{
j++;
continue;
}
else
{
s=s.substring(0,j)+s.substring(index,s.length()); //把j位的字符截去;
break;
}
}
}
System.out.println(s);
}
整数m去掉n位后剩下最大(小)值的更多相关文章
- Algorithm --> n位数去掉k位后找最小数
去掉K位求取最小数 一个n位的数,去掉其中的k位,怎样使留下来的(n-k)位数按原来的前后顺序组成的数最小 例如 8314925去掉4个数,留下125最小,注意有前后顺序要求,要是没有顺序当然是123 ...
- Codeforces Round #467 (Div. 2) B. Vile Grasshoppers[求去掉2-y中所有2-p的数的倍数后剩下的最大值]
B. Vile Grasshoppers time limit per test 1 second memory limit per test 256 megabytes input standard ...
- [LeetCode] Remove K Digits 去掉K位数字
Given a non-negative integer num represented as a string, remove k digits from the number so that th ...
- [LeetCode] 402. Remove K Digits 去掉K位数字
Given a non-negative integer num represented as a string, remove k digits from the number so that th ...
- UOJ #314. 【NOI2017】整数 | 线段树 压位
题目链接 UOJ 134 题解 可爱的电音之王松松松出的题--好妙啊. 首先想一个朴素的做法! 把当前的整数的二进制当作01序列用线段树维护一下(序列的第i位就是整数中位权为\(2^k\)的那一位). ...
- Java蓝桥杯练习题——求小数n位后3个数
求整数除法小数点后第n位开始的3位数 位数不足的补0,如0.125小数第3位后三位:0.12500→500 输入格式:a b n,空格分开,a是被除数,b是除数,n是小数后的位置 输出格式:3位数字, ...
- iOS 身份证最后一位是X,输入17位后自动补全X(转)
非原创,转载自http://blog.csdn.net/l2i2j2/article/details/51542028如果身份证最后一位是X,输入17位后自动补全X// textField代理方法 - ...
- SQL去掉小数点有效数字后的所有0
原文:SQL去掉小数点有效数字后的所有0 第一种方法 select cast(2.5000000000000 as real) select cast(2 as real) select ...
- shell 通过shift获得某位后的入参
有时shell的入参个数不定,想要获得第2位后的参数,作为新的入参调用其他脚本 通常这时候想到的方法是用遍历,例如下面的方法: for (( i=2;i<=$#;i++)) do ...
随机推荐
- GMIS 2017 大会陈雨强演讲:机器学习模型,宽与深的大战
https://blog.csdn.net/starzhou/article/details/72819374 2017-05-27 19:15:36 GMIS 2017 10 0 5 ...
- 如何将OpenCV中的Mat类绑定为OpenGL中的纹理
https://blog.csdn.net/TTTTzTTTT/article/details/53456324 如果要调用外接的USB摄像头获取图像通常使用OpenCV来调用,如何调用摄像头请参考本 ...
- java中的基本数据类型和引用数据类型
java中基本数据类型有8种:byte,short,int,long,char,float,double,boolean 整型有四种:byte short,int,long byte: 1字节 ...
- Golang利用select和普通函数分别实现斐波那契数列
//斐波那契数列 //1 1 2 3 5 8 //观察规律 //第一轮:前两个数是1,1,相加等于2 //第二轮:第二个数和第三个数是1,2,相加等于3 //第三轮:第三个数和第四个数是2,3,相加等 ...
- centos6安装多实例mysql
centos 6.5,使用二进制安装多实例mysql 5.5.60 所需安装包mysql-5.5.60-linux-glibc2.12-x86_64.tar.gz.ncurses-devel-5.7- ...
- Kali系列之multi/handler(渗透win7)
环境 靶机 192.168.137.133 kali 192.168.137.135 步骤+ 生成后门 msfvenom -p windows/meterpreter/reverse_tcp LHOS ...
- 2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1 20165211
目录 软件和镜像下载 虚拟机软件 Kali系统的下载 Kali系统安装 网络配置 设置共享文件夹和剪切板 安装VMware增强工具 设置共享文件夹 设置共享剪切板 更新软件源 软件和镜像下载 虚拟机软 ...
- fread和fseek的用法
原味:http://baike.baidu.com/view/656696.htm http://baike.baidu.com/view/656689.htm fread 功 能: 从一个流中 ...
- centos7 挂载磁盘设置开机自启动
1.首先查看系统磁盘情况: 2.格式化自己想要挂载的磁盘类型(ext3 ext4现在主要使用的是这些) 3.查看自己格式化磁盘的uuid(使用UUID挂载是唯一标识安全) 4.复制UUID号(别复制双 ...
- 【python002-设计小游戏】
用python设计第一个游戏 一.运行idle的快捷方式:F5 二.首先设计一款小游戏: print('-------开启python学习之旅--------')temp = input(" ...