Встречаемость символов

  • 10
  • Недоступна
Программа запускается с одним параметром - именем файла, который содержит английский текст. Посчитать частоту встречания каждого символа. Отсортировать результат по возрастанию кода ASCII (почитать в инете). Пример: ','=44, 's'=115, 't'=116. Вывести на консоль отсортированный результат: [символ1] ча
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (157)
  • популярные
  • новые
  • старые
Для того, что бы оставить комментарий вы должны авторизоваться
Vitaly Khan35 уровень
7 декабря 2018, 13:37
совсем короткая программа получается, если всю работу поручить TreeMap) но напрямую с массивом [256], конечно, производительнее...
Павел19 уровень, Москва
25 декабря 2018, 13:35
7 уровней за 20 дней?!!! Ты скипишь чтоль задачи? Или помимо сна и приема пищи только и занимаешься Рашем)
Vitaly Khan35 уровень
25 декабря 2018, 23:30
да просто комментировал задачи, которые когда-то давно решал. пробежаться по всем решенным задачам - недолго) решаю все (за весь курс 3 задачи не решил/не стал решать)
Павел19 уровень, Москва
26 декабря 2018, 14:41
Слава богу что такое решение! А то я уже думал что я с таким темпом капитан улитка)))
Denis18 уровень, Москва
среда, 19:44
за (char)(byte) спасибо... долго тупил)
Айнур Биктимиров23 уровень, Москва
26 ноября 2018, 12:30
Очень долго не мог решить задачу, не принимал валидатор решение. Все время ругался на "В файле необходимо посчитать частоту встречания каждого символа и вывести результат.". Решал сначала через ThreeMap, потом переписал через массив, результат один и тот же. Затем переписал часть кода по выводу результата. Было " System.out.printf("%s %d \n", (char) i , array[i]);" сделал: "System.out.println((char) i + " " + array[i])". И чудо, валидатор принял. 3 дня мучений и 19 попыток Задача проверка на настойчивость))
Nathan2217722 уровень, Санкт-Петербург
14 ноября 2018, 16:12
А как насчет валидатор начнет принимать ну вы знаете... Решения которые работают начиная с 32 позиции в табличке ASCII? Откуда начинаются символы а не всякая дрочь типа DC1, EM, BEL и так далее? А то очень приятно вложить лишний грамм айкью чтобы сделать по человечески только чтобы выяснить с 11й проверки валидатора что от тебя ожидают ответа как будто ты идиот и не смог осилить табличку ASCII после того как тебя отправили "почитать в инете". 3 раза программу переписал думая что алгоритм из жопы а не валидатор (да, дурак признаю. легких путей не ищем вмсесто того чтобы создавать проверочный фаил и гонять его через дебаггер давайте допустим что мы обосрались в алгоритме и перепишем программу заного, это на мне). Алсо, что не так с тем чтобы использовать Files.readAllBytyes??? нет типа это не самое умное решение , но тем не менее.
Constantine19 уровень
вчера, 20:49
:))) Ну, ежели нет идеальных людей, то почему должны быть идеальные валидаторы? Эмоции всем присутствующим знакомы :))))))), но я полагаю, что именно не совершенный валидатор добавляет к количеству нашего прочтения как и проверок
Василий23 уровень, Киев
12 ноября 2018, 23:09
Первый массив из кодов ASCII(0-255), каждый элемент равен своему индексу. Второй массив - читаем байты из файла. Потом проверяем в двойном цикле вхождение элементов из 2-го в 1-й, во внешнем цикле сразу же выводим результат, если вхождение символа>0
Nathan2217722 уровень, Санкт-Петербург
14 ноября 2018, 16:14
0 - 127* ASCII
Tolik19 уровень
7 ноября 2018, 18:50
Для меня главный затык был в том, что нужно выводить значения символов, которые встречаются как минимум один раз.
Артём 22 уровень, Санкт-Петербург
22 ноября 2018, 10:57
Вот на том же самом попался! Спасибо тебе за комментарий
Igor Davydov20 уровень, Харьков
1 ноября 2018, 16:45
Решение задачи: ~5 минут. Решение, приемлемое для валидатора : Войны бесконечности...
Alexey Maleev30 уровень
31 октября 2018, 12:50
Спасибо обсуждению в каментах!!!. Замаялся бороться с валидатором. Все проверил, все отладил - но нет не проходит Вот где? Где блин в условиях написано , что нужно каждый символ читать из файла отдельно? Итишки шишки составители задач.
King32 уровень, Санкт-Петербург
24 октября 2018, 14:11
"Ошибка в файле com/javarush/task/task18/task1821/Solution.java в строке 28 incompatible types: possible lossy conversion from byte to char" И так со всеми типами. Не хочет переводить ASCII в char ни в какую! Во всех предыдущих задачах нормально переводил. Что это? Глюк на сервере? upd: Разобрался. Если у кого-то такое же встретится, приводите байты в char сразу при добавлении в список. При более позднем приведении не компилируется.
Vadim Krant20 уровень, Москва
22 октября 2018, 21:36
Интересная задача. Использовал по максимуму предыдущие курсы. Моё решение не претендует на оптимальную скорость работы, эффективное использование памяти и красивый, ясный код. План действий: 1. Считываем файл в лоб, побайтово, никаких примочек. Читаем сразу в Char 2. Параллельно со считыванием забиваем HashSet который нам даст список уникальных символов 3. Перегоняем ХешСэт в АррайЛист 4. Сортируем ХэшСэт (сортируем конечноже АррайЛист) через коллекции (он автоматом выставит нам в нужном порядке по таблице ASCII) 5. Через Collection.Frequency собираем статистику встречаемости символов и заполняем массив частоты использования каждого символа 6. Выводим через один println сразу два массива, массив с частотй встречаемости символа и собственно самим символом. 10\10 спасённый пердаков от возгорания.
Anonymous #37410529 уровень, Амстердам
26 ноября 2018, 21:05
for (byte b : buffer) {
    byteCodeFrequency[b]++;
}
Никаких тяжеловесных коллекций и всё уже отсортировано.
Sasha S25 уровень, Киев
10 октября 2018, 23:16
https://www.geeksforgeeks.org/sortedmap-java-examples/