Заблокирован
|
|
1 | |
Частота повторений для всех символов в тексте01.01.2020, 10:14. Показов 2542. Ответов 18
Метки нет (Все метки)
У меня есть текст, допустим: фывфыв ывфваавв ( на практике тут будет 200 символов ).
Мне нужно вывести в алфавитном порядке количество каждого символа Каким примерно алгоритмом это можна сделать?
0
|
01.01.2020, 10:14 | |
Ответы с готовыми решениями:
18
Частота повторений для всех символов в тексте Частота встречаемости символов в тексте Подсчет количества всех символов в тексте Определить количество повторений в тексте заданного слова. Считать, что слова в тексте отделены друг от друга |
01.01.2020, 12:11 | 2 | |||||
Каждый символ — это, по сути, число. Число можно использовать в качестве индекса для массива. Создаёшь массив размером с максимальный символ (буква 'я') и начинаешь обходить текст. Если встречаешь символ, то увеличиваешь счётчик по данному индексу (array[*символ*]++;). Под спойлером достаточно простой вариант решения
Кликните здесь для просмотра всего текста
0
|
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
|
|
01.01.2020, 16:56 | 3 |
Gungala,
int[] letters = new int['я' + 1]; я не тестил, но неверное так int[] letters = new int['я'- 'а' + 1]; Не по теме: П.С. не то чтобы я тебя учил, тут люди прям пластами копипастят) Добавлено через 2 минуты Точно, есть же еще большие, надо значит на 2 еще.
0
|
406 / 278 / 93
Регистрация: 14.03.2017
Сообщений: 777
|
||||||
01.01.2020, 17:18 | 4 | |||||
у Gungala, все хорошо, ваш второй вариант не желателен, ибо требует дополнительных расчетов в параметрах и + к времени выполнения.
легким движением руки подставляются маленькие буквы Добавлено через 1 минуту здесь правильнее было бы
лишнее условие, прохождение будет все равно только по алфавиту
0
|
19509 / 11049 / 2931
Регистрация: 21.10.2017
Сообщений: 23,302
|
||||||
01.01.2020, 17:18 | 5 | |||||
1
|
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
|
|
01.01.2020, 17:28 | 6 |
0
|
406 / 278 / 93
Регистрация: 14.03.2017
Сообщений: 777
|
|
01.01.2020, 17:33 | 7 |
ViktorFX, 4,5 килобайта - это память?
0
|
ViktorFX
|
01.01.2020, 17:38
#8
|
Не по теме: sdasdaw, ну так и операции
0
|
406 / 278 / 93
Регистрация: 14.03.2017
Сообщений: 777
|
|||||||||||
01.01.2020, 17:43 | 9 | ||||||||||
ViktorFX, операции сложения / вычитания - знаимают больше времени умножения, а прямое обращение к индексу - o(1)
вы похоже не учитываете на перед, что каждый символ вам придется обрабатывать:
1
|
19509 / 11049 / 2931
Регистрация: 21.10.2017
Сообщений: 23,302
|
|
01.01.2020, 17:45 | 10 |
Парни, а чего вы к буквам прицепились? В ТЗ все символы...
С Новым Годом!
3
|
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
|
|
01.01.2020, 18:09 | 11 |
спасибо, я этого просто не знал.
о, а это именно суть. В изначальном коде Gungala, обращение происходило к каждому из элементов, и мое предложения было не в оптимизации а логике где letters содержит алфавит и ничего лишнего. А вот с этим
for (int i = 'а'; i < 'я' + 1; i++) мне стало сейчас понятно (я это раньше не учитывал), хорошее решение! Добавлено через 9 минут iSmokeJC, Присоединяюсь, С Новым Годом Всех!!! Не по теме: П.С. да мы не прицепились, просто до меня долго доходит. Я не претендую на правоту в спорах с программисами, я многого не знаю и пока у меня есть интерес мне пригодится любая "накрутка" (как механизм в детских игрушках, его надо время от времени подручивать чтобы он двигался)
2
|
01.01.2020, 18:18 | 12 |
Если честно, мне тож больше нравится вариант с меньшим потреблением памяти (пусть и несколько килобайт — это ничтожное количество), но всё таки sdasdaw прав. Лучше ведь, шоб программа быстрее работала и выполнялось меньше вычислений
0
|
406 / 278 / 93
Регистрация: 14.03.2017
Сообщений: 777
|
||||||||||||||||
01.01.2020, 19:28 | 13 | |||||||||||||||
Gungala, если меньше потребление памяти, тогда лучше использовать XOR
Перегнал тесты с двух сторон, XOR все равно победитель
0
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
01.01.2020, 21:35 | 14 |
Внезапно от заказчика приходят новые требования - считать ae, oo, au и т.д. за одну букву (типа дифтонги). И вся затея с массивом оказывается бесполезной
1
|
406 / 278 / 93
Регистрация: 14.03.2017
Сообщений: 777
|
|
01.01.2020, 21:36 | 15 |
1
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
02.01.2020, 00:16 | 16 |
0
|
406 / 278 / 93
Регистрация: 14.03.2017
Сообщений: 777
|
|
02.01.2020, 00:45 | 17 |
xoraxax, можно
0
|
Модератор
|
||||||
03.01.2020, 12:35 | 19 | |||||
Как вариант (без алфавитного порядка, зато частоты всех букв и задаваемых контекстов):
0
|
03.01.2020, 12:35 | |
03.01.2020, 12:35 | |
Помогаю со студенческими работами здесь
19
Частота слов в тексте Частота появления биграмм в тексте Частота встречаемости слов в тексте Частота повторения слов в тексте Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |