Здравствуйте!
Программа выдаёт корректный результат, проверял и на других входных данных (добавлял в список слово "мера"), тоже всё хорошо. Но вот валидацию всё равно не проходит, почему?
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.add("лира");
strings = fix(strings);
for (String string : strings) {
System.out.println(string);
}
}
//Функция проверяет, присутствует ли во входящей строке буква 'л'
private static boolean isL(String text){
int rez = text.indexOf('л');
if (rez == - 1) {
return false;
} else{
return true;
}
}
//Функция проверяет, присутствует ли во входящей строке буква 'р'
private static boolean isR(String text){
int rez = text.indexOf('р');
if (rez == - 1) {
return false;
} else{
return true;
}
}
public static ArrayList<String> fix(ArrayList<String> strings) {
boolean isL, isR;
String list;
//Перебор содержимого входящего списка
for (int i = 0; i < strings.size();) {
list = strings.get(i);
isL = isL(list);
isR = isR(list);
if (isR & !isL) {
strings.remove(i); //Если в строке есть 'р' и нет 'л', то строку удаляем из списка
} else {
if (isL & !isR)
strings.add(i + 1, list); //Если в строке есть 'л' и нет 'р', то добавляем в список эту строку ещё раз
i = i + 2;
}
}
return strings;
}
}