Здравствуйте, Spiceman, Вы писали:
S>Здравствуйте, Vzhyk, Вы писали:
S>6 минут с момента открытия студии. S>Писал первое, что приходит в голову, так как времени на подумать нет.
S>
S>Интересно посмотреть ожидаемое решение. ИМХО, требование уложиться во время — бред.
Сортировка работает за O(n*logn), можно за O(n) без сортировки, но тоже используя Dictionary<char, int>. Только писать туда не индекс, а частоту встречаемости символа.
Далее для генерации строки бежим по исходной строке и каждый раз когда встречаем новый символ, добавляем его в новую строку то количество раз, которое записано в Dictionary по этому ключу.
Re[3]: сгруппировать символы в строке - собеседование
Здравствуйте, vvlad.net, Вы писали:
VN>Твое решение не гарантирует порядок, что требуется по условию.
Гарантирует. Там же в конце сортировка по индексу первого появления символа в исходной строке.
Re: сгруппировать символы в строке - собеседование
Здравствуйте, Vzhyk, Вы писали:
V>On 21.02.2013 17:30, Аноним 471 wrote:
>> например есть "vvabbcbcc" >> Надо получить строку где сохранена "последовательность" — т.е. "vvabbbccc" >> Есть какой-то быстрый способ? Мне дали 5 минут написать метод V>За такую постановку задачи только в морду плюнуть. Или она на V>собеседовании была не так поставлена?
Задача элементарная, но 5 минут маловато. Сгенерировать идею за 5 минут можно, но написать код — за пять минут только непродуманный быдлокод получится — нафига такой скилл? Они там что, скоростным программированием занимаются?
Да и 5 минут на генерацию идеи тоже сомнительным требованием выглядит — люди разные все, стиль мышления разный, соответственно разное время надо.
Разве что стрессоустойчивость кандидата потестить.
Здравствуйте, Быдлокодер, Вы писали:
Б>Я понял как — сгруппировать символы и вывести эти группы. С примером сходится.
Сохраняя порядок появления символов. У тебя порядок не гарантируется.
Re[3]: сгруппировать символы в строке - собеседование
Здравствуйте, nile, Вы писали:
N>Здравствуйте, Быдлокодер, Вы писали:
Б>>Я понял как — сгруппировать символы и вывести эти группы. С примером сходится. N>Сохраняя порядок появления символов. У тебя порядок не гарантируется.
Почему не гарантируется?
Порядок формирования объектов IGrouping<TKey, TElement> зависит от порядка элементов последовательности source, определяющей первый ключ каждого объекта IGrouping<TKey, TElement>.Элементы внутри группы располагаются в том же порядке, что и в последовательности source.
Здравствуйте, nile, Вы писали:
N>Здравствуйте, vvlad.net, Вы писали:
VN>>Твое решение не гарантирует порядок, что требуется по условию. N>Гарантирует. Там же в конце сортировка по индексу первого появления символа в исходной строке.
Точно, и решение хорошее
Re[3]: сгруппировать символы в строке - собеседование
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, minorlogic, Вы писали:
M>>Если надо сделать in place , тоже не могу быстрого решения придумать. J>Так вроде не сказано, что in place
Без ограничений смысл такой задачи теряется. Если не дай бог, задача накидать решение за 5 мин, то я бы бежал от такой работы как ошпаренный
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[4]: сгруппировать символы в строке - собеседование
Здравствуйте, minorlogic, Вы писали:
M>Здравствуйте, vvlad.net, Вы писали:
VN>>5 min на такую задачу — вечность.
VN>>map + list (для сохранения порядка) — все.
M>Если делать чтобы просто работало то можно и 2 цикла прокрутить O(n^2).
Априори, такое не принимается (я бы не принял) — слишком тупое и очевидное решение.
Это кстати не O(n^2) а O(2n)
Re[4]: сгруппировать символы в строке - собеседование
Здравствуйте, vvlad.net, Вы писали:
VN>Это и есть спортивно. А на работе надо РАБОТАТЬ, а не спортом заниматься.
Это знаете ли попахивает дебилизмом. Я думаю подразумевалось что задача должна быть решена с помощью мозгов, а не map и list. Давайте-ка заново — представим что у вас symbol array и нужно решить задачу with O(1) by memory.
Re[2]: сгруппировать символы в строке - собеседование
On 22.02.2013 13:02, minorlogic wrote:
> В голову ничего не приходит для общего случая. Для небольшого алфавита , > сортировка подсчетом и затем второй проход , генерируем строку.
Второй не нужен, если взять еще один массив на размер алфавита.
> Если надо сделать in place , тоже не могу быстрого решения придумать.
Но зачем?
То бишь все уперлось в некорректную постановку задачи.
Posted via RSDN NNTP Server 2.1 beta
Re[5]: сгруппировать символы в строке - собеседование
Здравствуйте, nile, Вы писали:
N>Здравствуйте, Быдлокодер, Вы писали:
Б>>Я понял как — сгруппировать символы и вывести эти группы. С примером сходится. N>Сохраняя порядок появления символов. У тебя порядок не гарантируется.
Так почему вы считаете, что не гарантируется?
В SQL бы да — не гарантировался, т.к. возвращается множество, а множество штука без порядка. Там нужен OrderBy.
Re[6]: сгруппировать символы в строке - собеседование
Б>Порядок формирования объектов IGrouping<TKey, TElement> зависит от порядка элементов последовательности source, определяющей первый ключ каждого объекта IGrouping<TKey, TElement>.Элементы внутри группы располагаются в том же порядке, что и в последовательности source.
On 22.02.2013 13:43, vvlad.net wrote:
> Это кстати не O(n^2) а O(2n)
Оооооо, можно сразу просить название конторы, куда идти не следует, если
там такие спецуги работают.
Posted via RSDN NNTP Server 2.1 beta
Re[5]: сгруппировать символы в строке - собеседование
Здравствуйте, Vzhyk, Вы писали:
V>Так как O(n^2) получить?
Легко) Например, запустить вложенный цикл, который будет бежать по исходной строке и искать встречаемость для каждого символа отдельно.
Re[6]: сгруппировать символы в строке - собеседование
Здравствуйте, minorlogic, Вы писали:
M>Здравствуйте, vvlad.net, Вы писали:
VN>>Априори, такое не принимается (я бы не принял) — слишком тупое и очевидное решение. M>А с мапкой типа легкое ?
VN>>Это кстати не O(n^2) а O(2n)
M>Покажите как за O(2n)
За два прохода. тут есть решения за O(n) — один проход.