我開始閱讀着名的「破解編碼採訪」一書。在Java中刪除字符串中的重複字符
設計算法並編寫代碼以刪除字符串中的重複字符 而不使用任何附加緩衝區。注:一個或兩個額外的變量是好的。 數組的額外副本不是。
我發現這裏類似的話題:Remove the duplicate characters in a string
由筆者給出的解決方案是:
public static void removeDuplicates(char[] str) {
if (str == null) return;
int len = str.length;
if (len < 2) return;
int tail = 1;
for (int i = 1; i < len; ++i) {
int j;
for (j = 0; j < tail; ++j) {
if (str[i] == str[j]) break;
}
if (j == tail) {
str[tail] = str[i];
++tail;
}
}
str[tail] = 0;
}
這裏的問題是,筆者使用的陣列是這樣的一個說法功能。所以我的問題是:如何用STRING作爲參數編寫算法?因爲我覺得在這裏使用數組真的很容易,這就像你「避免了困難」(在我看來,我是一個新的Java開發者)。
你怎麼寫這樣的算法?
有關問題的緣故,讓我們假設字符串是可變的,說你會從中移除字符:您可以使用String.charAt(位置),以獲得該字符在該位置一樣使用數組[位置]。 – Vucko