字符串去重

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、結果截圖

wKioL1isXrSSaHQMAAAX5TrjzPg121.png-wh_50


4、算法分析

  時間複雜度爲:O(n);




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章