AcWing 5067. 删除数字
原题链接
简单
作者:
LRL.
,
2024-09-12 15:45:57
,
所有人可见
,
阅读 7
解题思路——贪心算法
// 贪心算法
// 你排在高位还比我大,如果你不走,最后的新数肯定比你走的情况要大
// 想要得到更小的数你肯定要给我让位!
#include <stdio.h>
#include <string.h>
#define N 1002
int stack[N], top = 0;
char a[N];
int n;
int main(){
scanf("%s%d", a, &n);
stack[top++] = a[0] - '0';
for (int i = 1; a[i]; i++){
int x = a[i] - '0';
while (top && stack[top - 1] > x && n){
top--;
n--;
}
stack[top++] = x;
}
// 还有 n 个没删完的!!
for(int i = 0; i < top - n; i++)
printf("%d", stack[i]);
return 0;
}