Я смотрю другие в этой задаче тоже не парятся насчет пробела в конце строки. Так что если это не ошибка, я даже и не знаю что нужно валидатору...
Например файл с одной строкой внутри 12345678901234567890123456
Получаем в Мапе значения
48:2
49:3
50:3
51:3
52:3
53:3
54:3
55:2
56:2
57:2
187:1
191:1
Вывод будет такой
49 50 51 52 53 54(Тут в конце гребаный пробел, ошибка ли это?)
Что не так?
Собрал в строку, обрезал и вывел, ошибка та же.
result = result + pair.getKey() + " ";
System.out.println(result.trim());
Вывод
49 50 51 52 53 54(тут уже пробела нету)
package com.javarush.task.task18.task1803;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.*;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
FileInputStream inputStream = new FileInputStream(reader.readLine());
ArrayList<Integer> list = new ArrayList<>();
HashMap<Integer, Integer> hashMap = new HashMap<>();
while (inputStream.available() > 0) {
int data = inputStream.read();
list.add(data);
}
inputStream.close();
reader.close();
Collections.sort(list);
int count = 1;
for (int i = 1; i < list.size(); i++) {
if (list.get(i-1).equals(list.get(i))) {
count++;
} else {
hashMap.put(list.get(i - 1), count);
count = 1;
}
}
int maxValue = Collections.max(hashMap.values());
Iterator it = hashMap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry)it.next();
if (pair.getValue().equals(maxValue)) {
System.out.print(pair.getKey() + " ");
}
it.remove();
}
}
}