题目-删除重复字符

题目-删除重复字符

编写程序,将给定的字符串去掉重复的字符后,按照ASCII码顺序从小到大排序后输出。

输入格式

输入是一个以回车结束的非空字符串(少于80个字符)。

输出格式

输出去重排序后的结果字符串。

输入样例

ad2f3adjfeainzzzv

输出样例

23adefijnvz

具体分析

题目的表述是去重排序,实际上的处理步骤应该是先排序后去重,因为排序过后相同的字符会挨在一起,方便去重。

一般都是以ASCII码值的大小作为字符比较的标准,0~9 < A~Z < a~z。

按照ASCII码排序字符串可以参照整型数组的排序方式进行排序。

输入样例排序后的字符串为:23aaaddeffijnvzzz,只需将字符串中不同的字符按照顺序输出即可得到结果字符串。

代码

 1 //删除重复字符并排序输出  
 2 #include<iostream>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     char ch[80];
 8     int n=0;    //输入的字符个数  
 9     
10     cin.get(ch[n]);
11     while(ch[n]!='\n'){
12         n++;
13         cin.get(ch[n]);
14     }
15     
16     for(int i=0; i<n-1; i++){    //冒泡排序,从小到大  
17         for(int j=0; j<n-1-i; j++){
18             if(ch[j]>ch[j+1]){
19                 char temp;
20                 temp = ch[j];    ch[j] = ch[j+1]; ch[j+1] = temp;
21             }
22         }
23     } 
24     
25     for(int i=0; i<n; i++){
26         if(ch[i+1]!=ch[i]){ //重复的字符会因为ASCII码值相同而相邻  
27             cout << ch[i];
28         }
29     }
30     
31     return 0;
32  } 

 

 

posted on 2021-05-10 22:39  屯饨  阅读(138)  评论(0编辑  收藏  举报

导航