计蒜客T1258 最小新整数

该博客讨论了如何从一个十进制正整数中删除指定数量的位,以生成最小的新整数。通过贪心策略,删除最大数字,使用C++的`erase`函数实现。样例展示了具体操作,并解释了`erase`函数的三种用法。
摘要由CSDN通过智能技术生成

给定一个十进制正整数 n(0 < n < 1000000000),每个数位上数字均不为 0。n 的位数为 m。
现在从 m 位中删除 k 位 (0<k < m),求生成的新整数最小为多少?
例如: n = 9128456, k = 2, 则生成的新整数最小为 12456。

输入格式
第一行 t, 表示有 t 组数据;
接下来 t 行,每一行表示一组测试数据,每组测试数据包含两个数字 n, k。

输出格式
t 行,每行一个数字,表示从 n 中删除 k 位后得到的最小整数。

输出时每行末尾的多余空格,不影响答案正确性

样例输入
2
9128456 2
1444 3
样例输出
12456
1

思路:删除字符串中最大的K位数字并且输出就好了。这里要用到erase函数,erase函数删除之后后面的字符自动往前挪。
erase函数的三种用法:
(1)erase(pos,n); //删除从pos开始的n个字符,比如erase(0,1)就是删除第一个字符
(2)erase(position);//删除position处的一个字符(position是个string类型的迭代器)
(3)erase(first,last);//删除从first到last之间的字符(first和last都是迭代器)

#include
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值