1748: 删数问题

Posted mjn1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
}

  

以上是关于1748: 删数问题的主要内容,如果未能解决你的问题,请参考以下文章

「 快乐水题 」1748. 唯一元素的和

1748. 唯一元素的和

1748:约瑟夫问题

LeetCode 1748 唯一元素的和[Map] HERODING的LeetCode之路

P1106 删数问题(单调栈)

4906 删数问题