Re[3]: сгруппировать символы в строке
От: jazzer Россия Skype: enerjazzer
Дата: 22.02.13 11:27
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>On 22.02.2013 13:23, jazzer wrote:


>> 2 массива размером character set (т.е. 256 для ASCII) — один массив

>> счетчиков и один массив для хранения последовательности. O(n).
V>Затем тебе 256, если алфавит английского около 30?

а заглавные буквы? а знаки препинания? В общем, нужно знать character set.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[2]: сгруппировать символы в строке
От: PZI  
Дата: 22.02.13 11:49
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Все передельно просто и понятно. Решается за O(n) по времени и O(2*размер_словаря) по памяти. Решение: 2 массива размера словаря, один для подсчета элементов, второй для запоминания последовательности появления элементов. Идем по исходному массиву и делаем для каждого из элементов, если в массиве для подсчета занчение не нулевое, то увеличиваем его на 1; если нулевое — увеличиваем на 1 и добавляем элемент в массив восстановления последовательности. Восстанавливаем массив.


Размер словаря какой?
Re[3]: сгруппировать символы в строке
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 22.02.13 11:50
Оценка:
Здравствуйте, PZI, Вы писали:

PZI>Размер словаря какой?


Не знаю, спросил бы у интервьювера. Собеседование — это диалог, вобщем-то.
Re[4]: сгруппировать символы в строке
От: PZI  
Дата: 22.02.13 12:05
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Здравствуйте, PZI, Вы писали:


PZI>>Размер словаря какой?


KP>Не знаю, спросил бы у интервьювера. Собеседование — это диалог, вобщем-то.


Ну собственно речь как раз об этом. Люди сами придумывают какой-то словарь, о котором в задаче речи не шло, и строят свой алгоритм на собственных допущениях.

Кстате, очень интересно посчитать эффективность вашего алгоритма по памяти при полном наборе UTF-16, особенно если строка состоит из 1000 раз повторяющейся буквы.
Re[5]: сгруппировать символы в строке
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 22.02.13 12:39
Оценка:
Здравствуйте, PZI, Вы писали:

PZI>Ну собственно речь как раз об этом. Люди сами придумывают какой-то словарь, о котором в задаче речи не шло, и строят свой алгоритм на собственных допущениях.


А ничего что ты тоже предложил решение исходя из собственных допущений? Вообще, задачи на алгоритмы это скорее на подумать, предложить оригинальное решение, узнать граничные условия и т.д., так что именно для данного класса задачь словарь выглядит более подходящим нежели дерево, хотя вариант с деревом тоже удачен, но тут возникнет вопрос с учетом порядка добавления элементов и его стоимости.

PZI>Кстате, очень интересно посчитать эффективность вашего алгоритма по памяти при полном наборе UTF-16, особенно если строка состоит из 1000 раз повторяющейся буквы.


Давай посчитаем. O(n) по скорости против (даже и не знаю, что там внутри мапы? красно-черное дерево? O(n log n) в твоем случае и O(k) = 2*2^16 по памяти против O(k) = сколько_там_займет_мапа_с_одним_элементом. Как-то так
Re[6]: сгруппировать символы в строке
От: PZI  
Дата: 22.02.13 12:56
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Здравствуйте, PZI, Вы писали:


PZI>>Ну собственно речь как раз об этом. Люди сами придумывают какой-то словарь, о котором в задаче речи не шло, и строят свой алгоритм на собственных допущениях.


KP>А ничего что ты тоже предложил решение исходя из собственных допущений?


Да ну, а мне показалось, что я ничего не придумывал. Не написано, значит этого, т.е. ограничений, нет. Более того, с мапкой, не зависимо от того есть ограничения или нет будет работать.

KP>Вообще, задачи на алгоритмы это скорее на подумать, предложить оригинальное решение, узнать граничные условия и т.д., так что именно для данного класса задачь словарь выглядит более подходящим нежели дерево, хотя вариант с деревом тоже удачен, но тут возникнет вопрос с учетом порядка добавления элементов и его стоимости.


Дерево... а кто говорил про дерево?

PZI>>Кстате, очень интересно посчитать эффективность вашего алгоритма по памяти при полном наборе UTF-16, особенно если строка состоит из 1000 раз повторяющейся буквы.


KP>Давай посчитаем. O(n) по скорости против (даже и не знаю, что там внутри мапы? красно-черное дерево? O(n log n) в твоем случае и O(k) = 2*2^16 по памяти против O(k) = сколько_там_займет_мапа_с_одним_элементом. Как-то так


"и эти люди мне запрещают ковыряться в носу?" (с) по скорости плохо посчитали, да и по памяти чет не видно ренджа утф16
Re[7]: сгруппировать символы в строке
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 22.02.13 13:01
Оценка:
Здравствуйте, PZI, Вы писали:

PZI>"и эти люди мне запрещают ковыряться в носу?" (с) по скорости плохо посчитали, да и по памяти чет не видно ренджа утф16


Ну так дай правильный ответ, не стесняся
Re[8]: сгруппировать символы в строке
От: PZI  
Дата: 22.02.13 13:12
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Здравствуйте, PZI, Вы писали:


PZI>>"и эти люди мне запрещают ковыряться в носу?" (с) по скорости плохо посчитали, да и по памяти чет не видно ренджа утф16


KP>Ну так дай правильный ответ, не стесняся


Сложность поиска/вставки по/в хешмапу(причем тут дерево?) в основном О(1). С помощью утф16 можно закодировать 1112064 символов. Дальше считайте сами.
Re[4]: сгруппировать символы в строке
От: Vzhyk  
Дата: 22.02.13 13:47
Оценка:
On 22.02.2013 14:27, jazzer wrote:

> а заглавные буквы? а знаки препинания? В общем, нужно знать character set.

Во-во. В задаче-то было всего 3 или 4 символа. А может это они так
цепочки ДНК обозначают, чтобы никто не догадался.
Posted via RSDN NNTP Server 2.1 beta
Re[5]: сгруппировать символы в строке
От: jazzer Россия Skype: enerjazzer
Дата: 22.02.13 13:52
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>On 22.02.2013 14:27, jazzer wrote:


>> а заглавные буквы? а знаки препинания? В общем, нужно знать character set.

V>Во-во. В задаче-то было всего 3 или 4 символа. А может это они так
V>цепочки ДНК обозначают, чтобы никто не догадался.
Может. Поэтому я и сказал про character set.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re: сгруппировать символы в строке
От: Keneneler  
Дата: 22.02.13 14:03
Оценка:
Здравствуйте, Аноним, Вы писали:

А>например есть "vvabbcbcc"

А>Надо получить строку где сохранена "последовательность" — т.е. "vvabbbccc"
А>Есть какой-то быстрый способ? Мне дали 5 минут написать метод

Ну если так и было сказано:"за 5 минут" то это прикол работодателя. Тут тогда PZI правильное решение привел. Я читал про это в какой-то книге по TDD.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.