На примерах все работает
Текст файла:
рот тор торт о
о тот тот тот
комок
тот
а о
потоп потоп потоп потоп
потом
комок
Вывод:
рот тор
о о
тот тот
тот тот
комок комок
потоп потоп
потоп потоп
Добавляю "-1" к 41 строке:
for (int x = 0; x < array.size() - 1; x++)
Ничего не меняетсяpackage com.javarush.task.task22.task2207;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.*;
/*
Обращенные слова
*/
public class Solution {
public static List<Pair> result = new LinkedList<>();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String path = br.readLine();
br.close();
FileInputStream fis = new FileInputStream(path);
BufferedReader reader = new BufferedReader(new InputStreamReader(fis, StandardCharsets.UTF_8));
String line = "";
ArrayList<StringBuilder> array = new ArrayList<>();
while (reader.ready()) {
line += reader.readLine().trim();
line += " ";
}
reader.close();
int v = 0;
String word;
StringBuilder word1;
for (String string : line.split(" "))
{
array.add(new StringBuilder(string.trim()));
}
Pair p = new Pair();
for (int x = 0; x < array.size(); x++)
{
word = array.get(x).toString();
loop: for(int y = x + 1; y < array.size(); y++) {
word1 = new StringBuilder(array.get(y).toString());
word1.reverse();
if (word.equals((word1.toString()))) {
p.first = array.get(x).toString();
p.second = array.get(y).toString();
array.set(x, new StringBuilder("" + (v++)));
array.set(y, new StringBuilder("" + (v++)));
result.add(p);
break loop;
}
}
}
}
public static class Pair {
String first;
String second;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Pair pair = (Pair) o;
if (first != null ? !first.equals(pair.first) : pair.first != null) return false;
return second != null ? second.equals(pair.second) : pair.second == null;
}
@Override
public int hashCode() {
int result = first != null ? first.hashCode() : 0;
result = 31 * result + (second != null ? second.hashCode() : 0);
return result;
}
@Override
public String toString() {
return first == null && second == null ? "" :
first == null ? second :
second == null ? first :
first.compareTo(second) < 0 ? first + " " + second : second + " " + first;
}
}
}