1、問題描述
給出一串字符串,去掉重複的即可;
例:str = "abacdefabcde";
去重後:str = "abcdef";
算法思想:就是遍歷一遍字符串,用一個alpha[]數組,將字符串的字符當做下標,出現一次後,將不再滿足條件,保證了去重;
2、代碼實現
#include<stdio.h> void main(void){ char str[] = "abacdefabcde"; char alpha[128] = {0}; //輔助空間,桶的思想 char res[80] = {0}; //存放去重後的結果字符串 int i; int t = 0; for(i = 0; str[i]; i++){ if(alpha[str[i]] == 0){ res[t++] = str[i]; alpha[str[i]]++; } } for(i = 0; i < t; i++){ printf("%c", res[i]); } printf("\n"); }
3、結果截圖
4、算法分析
時間複雜度爲:O(n);