На всех тестах с разными файлами всё выдаёт правильно, даже с количеством минимальных повторений больше одного! И всё равно валидатор не хочет пропускать по пункту 3! В чём может быть причина?
package com.javarush.task.task18.task1804;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Самые редкие байты
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String name = reader.readLine();
FileInputStream input = new FileInputStream(name);
ArrayList<Integer> list = new ArrayList<>();
ArrayList<Integer> copylist = new ArrayList<>();
ArrayList<Integer> list2 = new ArrayList<>();
while (input.available() > 0) {
list.add(input.read());
}
copylist.addAll(list);
int min = list.size();
for (int i = 0; i < list.size(); i++) {
int compare = 1;
for (int j = i+1; j < list.size(); j++) {
if (list.get(i) == list.get(j)) {
compare++;
list.remove(j);
j--;
}
}
if (compare <= min) {
min = compare;
}
}
for (int i = 0; i < copylist.size(); i++) {
int compare = 1;
for (int j = i+1; j < copylist.size(); j++) {
if (copylist.get(i) == copylist.get(j)) {
compare++;
}
if (compare > min) {
copylist.remove(j);
break;
}
}
if (compare == min)
list2.add(copylist.get(i));
}
input.close();
reader.close();
for (int i = 0; i < list2.size(); i++) {
System.out.print(list2.get(i));
System.out.print(" ");
}
}
}