Ввести с консоли имя файла.
Найти байт или байты с максимальным количеством повторов.
Вывести их на экран через пробел.
Закрыть поток ввода-вывода.
Самые частые байты
- 20
Недоступна
Комментарии (555)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Никита
18 мая, 19:59
Решил через HashMap. Задачка интересная и совсем не сложная.
+3
Khaweez
позавчера, 20:02
Скажите пожалуйста, а что вы с мапой дальше делалаи? Я из нее делал ArrayList<Map.entry<Integer, Integer>>, чтобы отсортирвать. Решение рабочее, но какое-то костыльное.
0
Anonymous #2566694 Backend Developer
10 мая, 19:36
очередная по уродски поставленная задача
спасибо new Cat("Barsik") Сызрань, Россия
и его сообщению ниже
{
Для таких как я.
• В консоль через пробел должны выводиться все байты из файла с максимальным количеством повторов.
Это означает что если байт "51" содержится в файле 10 раз(и это самое большое количество раз в сравнении с другими байтами) и байт "53" содержится в файле 10 раз то в консоли у нас выводится "51 53".
}
+3
Vladimir
1 июня, 12:42
Спасибо тебе, добрый человек. Я тоже не понял что требуется.
+1
Igor
10 мая, 06:49
Сама задача не сложная, но вот с понимаем неоднозначно постановленного условия задачи в который раз возникают сложности. Пришлось перечитать все комменты чтобы понять что требуется вывести.
В консоль нужно вывести байт с максимальным количеством повторений в файле. А если таких байтов несколько, то вывести все байты в консоль.
+2
Igor Petrashevsky
13 мая, 02:10
спасибо, помогло
0
Edward Northwind
6 мая, 14:18
Посмотрел - ваш вариант интересней)))
Я же решил через HashMap. Хотя у обоих вариантов количество циклов одинаково, ваш выглядит компактнее и элегантнее.
0
Anonymous #3036451
6 мая, 08:24
Довольно интересное правильное решение.
Подсказка: байтов может быть только 256.
P. S. делал через 2 ArrayList. Валидатор принял решение.
+1
Matveybor bor
27 марта, 19:25
Подскажите, а можно эту задачу решить через "количество вхождений" определенного байта ?
0
milyasow
31 мая, 21:06
В правильном решении именно так и делается.
0
Евгений
23 марта, 11:58
Пригодился метод Collections.frequency();
+5
CyberBoar
21 марта, 08:03
Решил разделить задачу, решая её через 3 приватных метода.
Первый считывает с консоли и возвращает введённую строку.
Второй возвращает мапу, где ключ - это байт, который встретился в файле, а значение - сколько раз он встретился.
Третий метод возвращает множество(Set), в котором перечислены байты, которые встретились наибольшее число раз.
Решил сделать так, а не через массив, что бы было легче делать следующие задачи - код практически не нужно будет менять.
0
Павел К
20 апреля, 12:28
я сделал тоже самое, но без отдельных методов, а потом долго соображал что же намудрили в правильном решении
0
Hugon
18 марта, 12:23
КОД ИЗ ПРАВИЛЬНОГО РЕШЕНИЯ:
почему в индекс записываем считанные байты и в каждом индексе хранится число +1? не понимаю вообще, подскажите, пожалуйста..
зачем так усложнять.. 0
Олег Мартынов
20 марта, 15:08
1. Первоначально мы создали массив со всеми байтами, их всего может быть от 0 до 256:
int[] byteCountArray = new int[256];
2. Дальше мы получаем номер ячейки этого массива, равный считанному байту:
fileInputStream.read() // например, 112 или 233
3. Получаем соответствующую данному байту ячейку из массива:
byteCountArray[112] или byteCountArray[233] // в соответствии с примером из п.2
4. И добавляем к значению ячейки (которое в начале равно нулю) единицу, т.е. просто считаем сколько раз нам встретился данный байт:
byteCountArray[112] = byteCountArray[112] + 1 // аналог операции - += 1
Другими словами, данная формула (byteCountArray[fileInputStream.read()] += 1;) подсчитывает сколько раз нам встречается в файле тот или иной байт
+4
Hugon
21 марта, 06:51
Cпасибо))
0
Олег
5 мая, 11:06
звиздец, как до такого вобще додуматься можно было...
+1
Евгений
16 марта, 13:30
10 попыток, 3 раза переписан код, и тупо не проходил проверку потому, что 2 раза написал вывод в консоль
в общем 2 лишних часа убил на задачу,
т.к. еще за разными компами работаю и если делаешь в идее, то потом в веб версии нет кода, и наоборот...
0
milyasow
31 мая, 21:09
В веб-версию достаточно просто скопировать код, чтобы он сохранился.
Ну или отправить на валидацию из IDEA, тогда он точно сохранится на сервере.
0