關於刪除字串中重複字元問題?解析

2021-06-13 07:41:50 字數 494 閱讀 4137

(1)遍歷整個字串,使用兩個for迴圈,比較字串中前後兩個字元是否相同,

若相同則設定標記(比如置為(0);然後將遍歷後陣列中非0元素輸出既可以;

時間複雜度o(n^2),空間複雜度o(1)

(2)僅需要一次遍歷,通過輔助陣列記錄字串中字元是否為第一次出現,

若為第一次則對應元素值為0,並記錄該字元,否則跳過不予記錄;

時間複雜度為線性,但需要申請額外空間(輔助陣列)

#include

using namespace std;

char* delrepeat(char *str)

; //申請128個char型別大小空間,賦初值為0;用於標記字串中某一字元第一次出現

for(i=0,j=0; c[i]; ++i)

}c[j] = '\0';//結束符

str = c; //將修改有的副本賦值給原始常量字串指標

return str;

}int main()

刪除字串中重複字元。

題目 刪除字串中重複字元。如果可以,優先刪除重複字元中排在比他小字元前面的字元。比如,輸入 bbcacdww 輸出 bacdw 分析 如果根本不允許開設陣列,則只能就地進行字串去重,那麼可以依次訪問字串中的字元,並刪除從該字串開始到結尾的所有相同字元。時間複雜度為o n 2 void removed...

字串 如何刪除字串中重複的字元

刪除字串中重複的字元,例如,good 去掉重複的字串後就變成 god 第一種方法 蠻力法 最簡單的方法就是把這個字串看作是乙個字元陣列,對該陣列使用雙重迴圈進行遍歷,如果發現有重複的字元,就把該字元置為 0 最後再把這個字元陣列中所有的 0 去掉,此時得到的字串就是刪除重複字元後的目標字串。第二種方...

刪除重複字串

oj.h ifndef oj head define oj head int getresult const char input,char output endif oj.cpp include oj.h description 給定乙個字串,將字串中所有和前面重複多餘的字元刪除,其餘字元保留,輸...