175438 //删掉7
15438 //删掉5
1438 //删掉4
138 //删掉8
13
这一道贪心的题 找到如何去判断才能最优 经过反复推敲
发现从左起如果第 i 个数比第 i-1大我们就删掉第i个
题目并没有很明确的说要去掉前导零,但是事实上数据是要去
int main()
{
cin>>s;
scanf("%d",&n);
int len=s.length();//看一下有多少位
for(int i=0;i<len;i++)
a[i]=s[i]-'0'; 转换为数组
int l=0;//输出的开头下标
for(int i=1;i<=n;i++)
{
for(int i=0;i<len;i++)
{
if(a[i]>a[i+1]) {//核心
for(int j=i;j<len;j++)//把数去掉 即把后面的数集体前移
a[j]=a[j+1];
len--;//长度减小
}
}
}
int i=0;
while(a[i]==0 && l<len-1) //去除前导0
{
l++;//
i++;//
}
for(int i=l;i<len;i++)//输出
printf("%d",a[i]);
return 0;//最后结束
}