问题就不描述了。直接上代码。(每一次实现局部最优,结果一定是最优的)
源代码:
#include<stdio.h>
int main() {
char s[100];
int n;
scanf("%s %d", s, &n);
int len = strlen(s);
//核心代码
while (n) //是否还有删除的个数
{
int i = 0;
while (s[i] <= s[i + 1])
{ //每次找出子序列里递增最大的那一个
i++;
}
while(i<len-1)
{
s[i] = s[i + 1];
i++;
}
//长度--
len--;
//删除个数--
n--;
}
for (int i = 0; i < len; ++i)
{
printf("%c", s[i]);
}
return 0;
}