Всем привет. Собственно пытаюсь решить данную задачу.. но она прям как камень преткновения..
Алгоритм тут довольно простой:
Есть метод fix, в который передаётся список строк, в данном методе я создал цикл в котором методом перебора индексов вызываются содержащиеся в элементах списка строки, и после проверяются по 2 условиям, на наличие буквы 'л' и буквы 'р'.
При обнаружении в переданной строке буквы 'р' происходит удаление элемента, который содержит переданную строку.
При обнаружении в переданной строке буквы 'л' происходит удвоение элемента (он копируется на следующий номер индекса элемента).
Собственно вот и всё.
Понимаю, что проблема связана с индексами.. но попробовав и так и сяк и эдак, не смог её устранить.
package com.javarush.task.task07.task0716;
import java.util.ArrayList;
/*
Р или Л
*/
public class Solution {
public static void main(String[] args) {
ArrayList<String> strings = new ArrayList<String>();
strings.add("роза");
strings.add("лоза");
strings.add("лира");
strings = fix(strings);
for (String string : strings) {
System.out.println(string);
}
}
public static ArrayList<String> fix(ArrayList<String> strings) {
for(int i = 0; i < 4; i++) {
String text = strings.get(i);
if(text.contains("р") == true && text.contains("л") == false) { //проверка элемента на содержание буквы 'р'
strings.remove(i); //если буква 'р' содержится в переданном элементе - удалить элемент
}
if(text.contains("л") == true && text.contains("р") == false) { //проверка элемента на содержание буквы 'л'
strings.add((i+1),strings.get(i)); //если буква 'л' содержится в переданном элементе - добавить значение этого элемента в следующий
}
}
return null;
}
}