Mike
Mike

Можно ли изменять объект, с которым работаешь в цикле, в теле цикла?

Всем привет. Есть задача (яп - Pascal):
ввод: строка.
Вывод: символ, который повторяется в строке чаще всех остальных и, непосредственно, кол-во вхождений этого символа в строку. Если таких символов несколько - вывести первый в алфавитном порядке (т. е. если выбираем из б and в, то выводим б) (имеется ввиду, что в строке нет символов, кроме букв алфавита) .
Я решил задачу с помощью двух циклов. Вот решение (Pascal): http://pastebin.com/zG4aXkr4

Получается, если длина строки = 100, то цикл повторится 10000 раз. Не очень эффективно. И если длина строки будет равна 256, то число итераций цикла будет равняться 65536. Как можно улучшить программу? (Хотя бы идею) Заранее спасибо.

Извиняюсь, заголовок вопроса забыл исправить..

> Alexey N
Вы гений. Спасибо XD
Как напишу, обязательно выложу.

Да. все работает. Вот решение: http://pastebin.com/nErEvdd3
Alexey N, еще раз спасибо.

МВ
Марина Вдовина

Заводите массив инт-ов длиной в количество символов (256). Потом проходите строку и для каждого символа прибавляете 1 в массиве к соответствующему элементу. Потом ищете по массиву максимум.
Зависимость линейная от длины строки. У вас - квадратичная.

Похожие вопросы
не работает цикл FOR
можно ли фотографировать на Теле-объектив?!
можно ли изменять файл который находится на сервере? (с++)
объясните как тут работает цикл
Можно ли сделать так что при наведении на картинку (или объект) изменялся titile страницы?
Как создать такой объект, в котором есть поддержка канвы?
Объясните чайнику на пальцах: Как работает цикл (for) в C# ?
Проблема с отражением объекта в Adobe Illustrator CC, после отражения объект не изменяется.
В каких циклах тело цикла в любом случае выполнетс как минимум один раз?
Ув. Вебмастеры где нужно редактировать element.style чтобы изменять классы объекта?