首页 > 代码库 > C语言 · 删除重复元素

C语言 · 删除重复元素

算法提高 11-2删除重复元素  
时间限制:10.0s   内存限制:256.0MB
    
问题描述
  为库设计新函数DelPack,删除输入字符串中所有的重复元素。不连续的重复元素也要删除。
  要求写成函数,函数内部使用指针操作。
样例输入
1223445667889
样例输出
13579
样例输入
else
样例输出
ls
数据规模和约定
  字符串数组最大长度为100。
 
 1 /*
 2 思路:
 3     将字符串存入字符数组a中,设将值拷贝给数组b,遍历b的每个元
 4 素,与a中的每个元素比较,有相同则b中对应元素置为-1。
 5 输出b中不为-1的元素。 
 6 */ 
 7 #include<stdio.h>
 8 #include<string.h>
 9 char a[100],b[100];
10 void Del(int index,int len){
11     for(int i=0;i<len;i++){
12         if(index == i) continue;//下标相同即同一个元素不比较,进入下一个循环 
13         if(b[index] == a[i]) b[index]=-1;//有相同元素,置值为 -1 
14     }
15 }
16 int main(){
17     gets(a);
18     memcpy(b,a,sizeof(a));//将a的元素拷贝给b 
19     int len=strlen(a);//求a的长度
20     for(int i=0;i<len;i++){
21         Del(i,len);
22     }
23     for(int i=0;i<len;i++){//输出b中非-1的元素 
24         if(b[i]!=-1){
25             printf("%c",b[i]);
26         }
27     }
28     return 0;
29 } 

 

 

 

C语言 · 删除重复元素