博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Problem1删数问题解题报告
阅读量:6361 次
发布时间:2019-06-23

本文共 919 字,大约阅读时间需要 3 分钟。

题目描述

    给定一正整数n(n的位数小于240),现要删除数n中的s个数码,使其得到的新数最小,求这个最小数。

输入

    输入有两行,第一行为整数n,第二行即为s

输出

输出一行,即最小的那个数

测试样例1

输入

123456

1

输出

12345

测试样例2

输入

234516

3

输出

216

解题思路

首先考虑s=1时的情况,很容易知道如果只删一个数,那么若各位数字递增则删除最后一个数,否则删除第一个递减区间的首字符,这样删除便可以得到最小的数。而对于s>1时,我们只需要重复这种操作s次,得到的操作就是所求的最小数。

程序代码

 
using
System;
using
System.Text;
namespace
tanxin
{
class
delnum
{
static
void
Main(
string
[] args)
{
string
n;
int
s;
n
=
Console.ReadLine();
s
=
int
.Parse(Console.ReadLine());
Console.WriteLine(GetMinNum(n, s).ToString());
}
public
static
StringBuilder GetMinNum(
string
n,
int
s)
{
bool
flag;
StringBuilder str
=
new
StringBuilder(n);
for
(
int
i
=
s; i
>
0
; i
--
)
{
flag
=
false
;
for
(
int
j
=
0
; j
<
str.Length
-
1
; j
++
)
{
if
(str[j]
>
str[j
+
1
])
{
str.Remove(j,
1
);
flag
=
true
;
break
;
}
}
if
(
!
flag)
{
str.Remove(str.Length
-
i,i);
break
;
}
}
return
str;
}
}
}

转载于:https://www.cnblogs.com/Crakme/archive/2011/03/09/1978237.html

你可能感兴趣的文章
Java定时任务Timer、TimerTask与ScheduledThreadPoolExecutor详解
查看>>
5.Appium 安卓自动化(UIAutomator)
查看>>
[ISSUE]Lambda binding for lua is not supported.
查看>>
222
查看>>
MDS
查看>>
I.MX6 Ethernet MAC (ENET) MAC Address hacking
查看>>
awk里的各种坑
查看>>
解决ajax重复提交问题?
查看>>
年轻男子被撞成重伤 肇事车辆不知所踪
查看>>
C#Webform 控件
查看>>
Unsupported major.minor version 51.0解决办法
查看>>
JS继承的实现方式
查看>>
jenkins 研究1-5
查看>>
JSP(初步)
查看>>
常用的软件、网站
查看>>
String和InputStream的转换
查看>>
经常开发出现bug的同事,
查看>>
poj1088(记忆化搜索入门题)
查看>>
复习扩展方法 涉及委托,这里我使用自定义委托类型 public delegate bb MyFunc<in T,out bb> (T arg)...
查看>>
NSProgress
查看>>