@spezcial
Начинающий программист

Как возможно посчитать повторяющиеся буквы в слове?

Как возможно посчитать повторяющиеся буквы в слове и вывести уникальные буквы как ")", а повторяющиеся как "("?

К примеру:
погода - )()())
машина - )()))(
  • Вопрос задан
  • 111 просмотров
Пригласить эксперта
Ответы на вопрос 2
@xez
Junior Roo
1. Пройти строку по буквам, составить Map: буква - количество повторений.
2. Пройти ещё раз, заменить уникальные буквы как ")", а повторяющиеся как "("
Ответ написан
TheKnight
@TheKnight
Программист
Если букв ограниченное количество то можно использовать bitset, закодировав каждую букву в индекс бита.
Проходим, пересчитываем букву в индекс, проверяем текущий бит, выводим символ, записываем бит.
Решается за один проход.
Вместо bitset можно использовать массив бит или массив счетчиков букв.

Зависит еще от того, в какой кодировке текст, какое разнообразие букв и так далее.
Юникодная таблица должна уместиться в 20 килобайт.
Если же мы рассматриваем только русские(английские) буквы в нижнем регистре - то это 33(26) бит дополнительной памяти. Не учитывая вспомогательные обертки. Либо использовать UInt64(UInt32 для английских букв) как хранилище и битовой магией проверять и выставлять.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы