算法提高 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 }