PTA——删除重复字符

时间:2022-11-29 22:16:28

PTA

7-60 删除重复字符

 1 #include<stdio.h>
 2 #include<string.h>
 3 #define N 85
 4 
 5 int main() {
 6     int t,i,j,m=0,flag;
 7     char original[N],target[N];
 8     gets(original);
 9     for(i=0; i<strlen(original); i++) {
10         flag = 0;
11         t = original[i];
12         //判断字符是否在目标数组中
13         for(j=0; j<i; j++) {
14             if(original[j] == t) {
15                 flag = 1;
16                 break;
17             }
18         }
19         if(flag==0) {
20             target[m] = t;
21             m++;
22         }
23     }
24     for(i=1;i<m;i++){
25         t = target[i];
26         j = i-1;
27         while(j>=0 && t<target[j]){
28             target[j+1] = target[j];
29             j--;
30         }
31         target[j+1]=t;
32     }
33     for(i=0; i<m; i++) {
34         printf("%c",target[i]);
35     }
36 }

分析:

1、注意字符串长度,original用了gets()接收,可以通过strlen()得到长度,但target不行,要单独定义变量记录长度

2、另一种思路是先排序再输出不重复的字符