本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。
输入格式:
输入是一个以回车结束的非空字符串(少于80个字符)。
输出格式:
输出去重排序后的结果字符串。
样例:">样例:">样例:">样例:">样例:">样例:">样例:">样例:">样例:">样例:">输入样例:
ad2f3adjfeainzzzv
输出样例:
23adefijnvz
思路:
水题,字符码在21-126之间,姑且开一个长度300的数组,每一字符以ASCII码参与数的存储,每次标记一下,典型费空间省时间。
AC代码:
#include<stdio.h>
#include<string.h>
int main()
{
char a[90];
gets(a);
int n=strlen(a);
int b[300]={0};
for(int i=0;i<n;i++)
{
int t=a[i];
b[t]=1;
}
for(int i=1;i<=300;i++)
{
if(b[i]==1)
printf("%c",i);
}
return 0;
}