删除字符【贪心】
题目描述:
给定一个单词,请问在单词中删除 t个字母后,能得到的字典序最小的单词是什么?
输入描述:
输入的第一行包含一个单词,由大写英文字母组成。
第二行包含一个正整数 t。其中,单词长度不超过100,t小于单词长度。
输出描述:
输出一个单词,表示答案。
输入样例:
LANQIAO
3
输出样例:
AIAO
思路:
这道题不是简单的先排序,再输出最小的一串字符,因为输出的一串字符与原先的字符前后顺序一样。
其实这道题的意思是从前n个中找出最小的字符,然后删除n+1个字符,再这个最小的字符和后面的字符连接起来。
代码:
#include<stdio.h>
#include<string.h>
int main()
{
char x[110];
int n,i,min='a';
scanf("%s",x);
scanf("%d",&n);
int len=strlen(x);
//找出前 n 个字母的最小字母
for(i=0;i<n;i++)
{
if(min>x[i])
min=x[i];
}
x[i]=min; //将最小的字母放在未删除字符的前面
//输出
for(;i<len;i++)
printf("%c",x[i]);
return 0;
}