Не, ну это какая-то шутка. Всё работает, но валидатор не принимает вывод...
package com.javarush.task.task10.task1012;
import java.io.BufferedReader;
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));
// Алфавит
List<Character> alphabet = Arrays.asList(
'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж',
'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о',
'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц',
'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я');
// Ввод строк
ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < 10; i++) {
String s = reader.readLine();
list.add(s.toLowerCase());
}
ArrayList<Integer> count = new ArrayList<>();
for (int i = 0; i < alphabet.size(); i++) {
count.add(0);
}
for (String s: list) {
for (int i = 0; i < s.length(); i++) {
int binary = binaries(s.charAt(i), alphabet, 0, alphabet.size()-1);
if (binary != -1) {
int temp = count.get(binary);
count.set(binary, temp+1);
}
}
}
for (int i = 0; i < alphabet.size(); i++) {
System.out.println(alphabet.get(i) + " " + count.get(i));
}
}
static int binaries(char c, List<Character> list, int first, int last) {
int index = -1;
while (first <= last) {
int mediumInd = (last + first)/2;
if (list.get(mediumInd).equals(c)) {
index = mediumInd;
break;
} else {
if (list.get(mediumInd) < c) {
first = mediumInd + 1;
} else if (list.get(mediumInd) > c) {
last = mediumInd - 1;
}
}
}
return index;
}
}
