原题链接传送门
题意:给一个长度为n字符串,消除k个字符。按a-z的顺序消除,只有a消除完才能消b,b消除完才能消c……直到消除k个字符。
这里用两个for循环,一个来标记26个字母,一个用来遍历字符串。然后直接通过改变字符来达到消去目的。
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int main() {
int n,k,i,j;
string str;
scanf("%d%d",&n,&k);
cin>>str;
for(i=0; i<26; i++)
for(j=0; j<n && k; j++)
if(str[j] == 'a' + i) {
str[j] = '0';
k --;
}
for(i=0; i<n; i++)
if(str[i] != '0')
printf("%c",str[i]);
printf("\n");
return 0;
}