删数问题
贪心法求解
贪心准则:最近下降点优先删除
#include<iostream>
#include<cstring>
using namespace std;
const int N = 100;
int main(){
int k,index;
char x[N];
cin >> x >> k;
while(k --){
// 进行k次删除数字处理
index = 0;
while(index < strlen(x) && x[index] <= x[index+1]) index++;
if(index==strlen(x)) x[index-1] = 0;
else{
x[index]=0;
strcat(x,x+index+1);
}
}
cout<<x<<endl;
return 0;
}
输入数据
178543
4