我开始阅读着名的“破解编码采访”一书。在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