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 } 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM