Я работаю в program, что говорится, чтоАлгоритм для удаления повторяющихся символов в Java
Существует строка, состоящая из строчных латинских букв алфавита. В одной операции мы можем удалить любую пару соседних букв с одинаковым значением.
Например, строка «aabcc» станет либо «aab», либо «bcc» после операции.
Результат должен быть как можно меньше. Чтобы сделать это, мы должны повторить вышеуказанную операцию столько раз, сколько она может быть выполнена.
Пример:
case 1:
Input - aaabccddd
Output - abd
Здесь последовательность операций заключаются в следующем:
aaabccddd → abccddd
abccddd → abddd
abddd → abd
Вы можете обратиться к ссылке выше для более подробной информации.
Я пытался использовать список, чтобы решить эту проблему, но я вижу, что это не правильный подход:
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String data = scan.next();
scan.close();
String[] dataArr = data.split("");
List<String> elements = Arrays.asList(data.split(""));
for(int i=0; i< elements.size()-1; i++) {
if(elements.get(i).equals(elements.get(i+1))) {
elements.remove(i);
elements.remove(i+1);
}
}
System.out.println(elements);
}
}
Я получаю ошибку как: java.lang.UnsupportedOperationException
Пожалуйста, помогите мне о том, что это правильный путь решите эту проблему.
списке производства [ 'Arrays.asList'] (https://docs.oracle.com/javase/8/docs/api/java/util /Arrays.html#asList-T...-) не поддерживает операцию 'remove'. (Он только обертывает массив, в который вы его инициализируете, и массивы не могут быть изменены.) Вы можете использовать ['java.util.ArrayList'] (https://docs.oracle.com/javase/8/docs/api/ java/util/ArrayList.html). – khelwood
Обратите внимание, что вы не должны перебирать список вперед, если вы удаляете его: вы пропустите элементы или элементы процесса, которых вы не ожидали. –
Лучший способ сделать это - добавить материал, который вы не удаляете, в новую строку. Вырежьте список. – Cruncher