去除字串中重複字元

2021-09-22 19:18:50 字數 756 閱讀 7516

設計演算法並寫出**移除字串中重複的字元,不能使用額外的快取空間。注意: 可以使用額外的乙個或兩個變數,但不允許額外再開乙個陣列拷貝。

進一步地,

為你的程式寫測試用例。

這道題目其實是要你就地(in place)將字串中重複字元移除。你可以向面試官問清楚, 不能使用額外的乙份陣列拷貝是指根本就不允許開乙個陣列,還是說可以開乙個固定大小, 與問題規模(即字串長度)無關的陣列。

如果根本就不允許你再開乙個陣列,只能用額外的一到兩個變數。那麼,你可以依次訪問 這個陣列的每個元素時間複雜度為o(n2 ),**如下:

#include#include

using

namespace

std;

void removeduplicate(char *str)

else

--j;

}if(j<0

) str[i-count]=str[i];

}str[n-count]='\0'

;}intmain()

如果可以開乙個固定大小,與問題規模(即字串長度)無關的陣列,那麼可以用乙個陣列來 表徵每個字元的出現(假設是ascii字元,則陣列大小為256),這樣的話只需要遍歷一遍字元 串即可,時間複雜度o(n)。**如下:

void removeduplicate(char

s) }

s[p] = ''

;

}

去除重複字串

建立新集合將重複元素去掉 1,明確返回值型別,返回arraylist 2,明確引數列表arraylist 分析 1,建立新集合 2,根據傳入的集合 老集合 獲取迭代器 3,遍歷老集合 4,通過新集合判斷是否包含老集合中的元素,如果包含就不新增,如果不包含就新增 public static array...

c 字串 去除重複字元

輸入乙個字串,去掉重複字元後輸出。輸入樣例 abcaadefb輸出樣例 abcdef實現方法 void encrypt char keych,char key if flag keych j 1 0 完整程式 include include using namespace std define ma...

去除給定字串中重複的字串

create or replace function myreplace oldstr varchar2,sign varchar2 return varchar2 is str varchar2 4000 currentindex number startindex number endindex...