整数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 ...
随机推荐
- ES6知识整理(3)--函数的扩展
只有整理过的学习才是有效的学习.也就是学习之后要使用和整理成文,才是真正的学到了... 最近上班有点忙的关系,于是文章更新会慢些.只有晚上加完班之后,空余时间才能学习整理.因此完成一篇也可能要几个晚上 ...
- game to refactor for refactor
first step, only aim to work. it works, but i have not seen the necessaty to use class yet. my quest ...
- Linux学习笔记之CentOS7配置***SS
0x00 概述 最近安装K8S,镜像在国内不可达,只能通过科学方法获取. 0x01 安装配置Shadowsocks客户端 1.1 安装Sha.dows.ocks客户端 安装epel扩展源 采用Pyth ...
- python面向对象三大特性之一继承、多态、封装
继承,即在定义一个类时,以另一个类为参数,则称这个新定义的类继承了参数类,父类又称为基类. 单继承表示只继承一个类,多继承表示继承多个类. class parent1: pass class pare ...
- 【题解】Luogu P1648 看守
原题传送门:P1648 看守 这题目让求得的是d维( d <=4 )空间中n个点( 2 <= N <= 1000000 )之间最大的哈曼顿距离 模拟,emm,能拿30分,不错 因为d ...
- tls 双向认证 client端代码例子
example: python import httplib import json import ssl import urllib2 import requests CA_FILE = " ...
- Android之电话拨号和短信
拨打电话号码,需要添加权限设置,在安装的应用程序信息中可以看到此权限信息Intent doSth=new Intent();//意图:你想做什么呢?doSth.setAction(Intent.ACT ...
- Mysql 用命令行导出导入数据方法
方法一: 导出参考:https://www.cnblogs.com/activiti/p/6700044.html 用mysqldump可以导出整个数据库里的表和数据,不单单是只导出某个表的数据 命令 ...
- 记录结果再利用的"动态规划"之背包问题
参考<挑战程序设计竞赛>p51 https://www.cnblogs.com/Ymir-TaoMee/p/9419377.html 01背包问题 问题描述:有n个重量和价值分别为wi.v ...
- POJ - 1287 Networking 【最小生成树Kruskal】
Networking Description You are assigned to design network connections between certain points in a wi ...