C++贪心算法之删数问题

删数问题

题目描述

《C++贪心算法之删数问题》

思路分析

《C++贪心算法之删数问题》

代码实现

#include<iostream>
using namespace std;
string n; //定义字符串n
int s;
main()
{
	cin>>n>>s;
	int len=n.size(); //也可以用n.length()来取字符串n的长度
	while(s--)
		for(int i=0;i<len;i++) //枚举
			if(n[i]>n[i+1]||i==len-1) //删除遇到的第一个递减序列的第一个数字(若整个字符串为非递减序列,则删去末尾的数字)
			{
				n.erase(i,1); //把当前字符从字符串中删除
				break; //不可省略,否则字符串会多删字符
			}
	while(n[0]=='0'&&n[1]) //去掉前缀0,并至少保留1个数字
		n.erase(0,1); //删去当前字符串开头的'0'
	cout<<n; //输出字符串
}
    原文作者:贪心算法
    原文地址: https://blog.csdn.net/C20190413/article/details/77368422
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞