1748: 删数问题

题目描述

给定n 位(n≤100)正整数a,去掉其中任意k≤n 个数字后,剩下的数字按原次序排列组成一个新的正整数。对于给定的n 位正整数a和正整数k,设计一个算法找出剩下数字组成的新数最小的删数方案。 对于给定的正整数a,计算删去k 个数字后得到的最小数。

输入

输入数据的第1 行是1 个正整数a。第2 行是正整数k。

输出

将计算出的最小数输出。

样例输入

178543
4

样例输出

13

#include <iostream>
#include <string>
using namespace std;

int main()
{
	string s;
	int k;
	cin >> s >> k;
	
	int n = 0, i = -1;
	int len = s.length();
	while(n < k)
	{
		i ++;
		if(s[i] > s[i + 1])
		{
			s.erase(i, 1);
			n ++;
			i = -1;
		}
	}
	i = 0;
	while(s[i] == '0')
		i ++;
	
	cout << s.substr(i, len) << endl;
	
	return 0;
}

  

posted @ 2019-03-23 21:32  青衫客36  阅读(134)  评论(0编辑  收藏  举报