Я начал читать знаменитую книгу «Взламывание книги по кодированию».Удалите повторяющиеся символы в строке в 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