@proRuby

Страница 48 из 1594
Stanislav
25.05.2016
19:08:19
да зачем там суб
найдешь другой вариант реплейса пиши

Aldar
25.05.2016
19:09:50
def solution(s) s.scan(/(A)[AB]*|(C)[BC]*/).flatten.compact.join('') end

вот решение короче

неверно

Google
Stanislav
25.05.2016
19:12:20
solution('­AABCBBBCAA­ABBCCC') => "ACAC"

Aldar
25.05.2016
19:12:20
про Б забыл

V
25.05.2016
19:12:51
Нужно замерить бенчмарком string.index и заглянуть под капот sub (почитать сишные сорцы), как с точки зрения памяти это работает. Т.е сравнить насколько string.index может быть быстрее sub

Aldar
25.05.2016
19:12:54
solution('­AABCBBBCAA­ABBCCC') => "ACAC"
Это как раз таки верно

мой решение сейчас solution("BBBBB") неверно считает

Stanislav
25.05.2016
19:15:22
ах, не дочитал условие

ну ок

да и давно на руби н еписал эх

Aldar
25.05.2016
19:20:05
Короче если в строке все B, то ничего не меняется

Если есть хотя бы одно A или хотя бы одно C, то все B уничтожаются

и остаются только А и С

def solution(s) s.scan(/B*(A)[AB]*|B*(C)[BC]*|(B+)/).flatten.compact.join('') end

вот похоже на правду

Google
Aldar
25.05.2016
19:22:07
да тут задача не на руби а на регэкспы)

ну и на руби)

Stanislav
25.05.2016
19:25:49
бенчмарк с другими вариантами давай еще сделай)

ставишь benchmark ips и пишешь

Aldar
25.05.2016
19:26:16
это решение имеет линейную сложность

я уже сделал бенчмарк)

первое решение было корректное, но медленное. Как раз какое ты предлагал. Квадратичная сложность. Для коротких строк работает, а вот на 50000 уже тормозит чуток

Stanislav
25.05.2016
19:27:48
ну я так быстрый варик предложил)

всмысле, не долго думая

Aldar
25.05.2016
19:28:54
да, но вся суть задачи то была именно в оптимизации, наивное решение вообще тупое

Stanislav
25.05.2016
19:29:17
ну если джун то какие притензии))

Aldar
25.05.2016
19:29:22
тут типа надо заметить что эти преобразования сохраняют регулярную грамматику

Stanislav
25.05.2016
19:29:35
на какого нибудь миддла еще можно

Aldar
25.05.2016
19:29:37
и поэтому можно одним регэкспом всё сделать

Stanislav
25.05.2016
19:32:28
да

нормас

@hardliner а чо, на хаскелле нет работы? )

Aldar
25.05.2016
19:41:03
На хаскеле меньше намного, у меня уровень ещё не тот)

На эликсир проще работу найти чем на хаскель

Stanislav
25.05.2016
19:46:16
и на го проще, согласен

Google
Aldar
25.05.2016
20:16:53
в общем могут про докер, кафку и редис спросить

Stanislav
25.05.2016
20:17:10
докер не юзал, до сих пор полного юзкейса не могу понять

Aldar
25.05.2016
20:17:17
надо про докер посмотреть видос вводный)

и основные фичи

Stanislav
25.05.2016
20:19:42
@demeliorator расскажите нам что нибудь про кафку))

Aldar
25.05.2016
20:20:48
да лан не надо, основную тему я понял уже для чего оно, а в тонкости всё равно не успею вникнуть

Ваня
25.05.2016
20:42:55
Интересно, это везде такое у джунов спрашивают?)

Stanislav
25.05.2016
20:43:14
да как то не припомню

"умеешь кодать?" "Да" ну ок

Ваня
25.05.2016
20:52:35
Я просто думаю, что джуна будут спрашивать про всякие там актив рекорд, валидации и тд. Не думал, что могут давать задачки на оптимизацию такого рода. Во всяком случаи с моим уровнем знаний такая зада кажется трудной.

Aldar
25.05.2016
21:04:01
Я вроде не на джуна вакансию отзывался

Ваня
25.05.2016
21:04:15
Аа

Тода еще понятно)

Aldar
25.05.2016
21:16:58
вроде да

Stanislav
25.05.2016
21:17:14
более менее тогда

Konstantin
25.05.2016
21:24:15
ммм... а разве sub и gsub не делают замену по регулярному выражению?

Stanislav
25.05.2016
21:24:29
делают, но несколько иначе)

Konstantin
25.05.2016
21:24:37
по сравнению с чем иначе?

Stanislav
25.05.2016
21:25:01
с тем что алдар показывал

Google
Konstantin
25.05.2016
21:25:43
ну просто как может быть быстрее сделать scan с большим массивом в итоге и его соединять, за счет чего?

вы тестили это бенчмарком?

Aldar
25.05.2016
21:26:10
тестил

быстрее засчёт того что огромные куски текста матчатся буквально в один символ

а матчатся они за линейный проход

Если gsub-ом в цикле преобразовывать, то получается длинную строку постепенно уменьшать за много проходов

Stanislav
25.05.2016
21:32:33
не, меня задолбал вебдев за 5 лет, рад что опять на плюсы вернулся)

Aldar
25.05.2016
21:32:51
я с плюсов решил уйти)

в веб

Stanislav
25.05.2016
21:32:53
правда регулярки юзал крайне редко

я с плюсов решил уйти)
я так же, потому что в че не было норм вакансий на плюсы в то время

*в челябинске)

Konstantin
25.05.2016
21:34:08
Честно говоря, задача настолько оторвана от жизни, что слабо представляется, как оно пригодится

Stanislav
25.05.2016
21:34:10
а щас армы и сидишь себе оптимизируешь

Aldar
25.05.2016
21:34:20
я не поэтому - хочу свои проекты пилить

Konstantin
25.05.2016
21:34:36
Ну просто на реально рабочем проекте за такой код с кучей scan'ов каких-то любой тимлид даст по башке )

Ибо нахрен оно надо вообще )

Aldar
25.05.2016
21:34:44
ну это стандартные алгоритмические задачки для программистов)

Stanislav
25.05.2016
21:35:06
а вообще, всегда так, почти все примеры где бы это не было, оторваны от жизни)

Google
Konstantin
25.05.2016
21:35:28
Ну ты не обязан ведь знать что на милисекунды быстрее способ со сканами или с gsub'ом. Оно реально ведь никак не показывает твой уровень

Aldar
25.05.2016
21:35:36
в гугл вообще одни алгоритмы спрашивают

Konstantin
25.05.2016
21:35:52
Ну у них специфика такая, в общем-то.

А на рубях где это пригодится может я даже не знаю

Aldar
25.05.2016
21:36:03
в майкрософт тоже

Konstantin
25.05.2016
21:36:38
Может вообще быстрее вызвать sed из шела, чем сканами это делать ) Это будет считаться за ответ? )

Если это так, конечно

Aldar
25.05.2016
21:37:20
да там не много сканов то, ведь паттерн преобразовывает большой кусок текста в один символ

Konstantin
25.05.2016
21:37:50
У меня были такие случаи, когда быстрее сложные операции с текстом делать вызовами системных утилит из шела, нежели рубями

Aldar
25.05.2016
21:38:01
то есть регулярка проходит по строке, и матчит

Konstantin
25.05.2016
21:38:15
Ну и то и другое ведь регулярка по сути

Можно еще по строке пройтись в цикле по символами и заменять

Aldar
25.05.2016
21:38:25
разница в сложности алгоритма

Konstantin
25.05.2016
21:38:30
Тоже быстро наверняка

И может даже быстрее регулярки

Aldar
25.05.2016
21:38:51
нет, я проверял же)

сейчас напишу своё первое решение

Konstantin
25.05.2016
21:39:22
Ну значит они неправильно хантят, на мой скромный взгляд

Aldar
25.05.2016
21:39:36
http://pastebin.com/FgqapJar

Konstantin
25.05.2016
21:40:05
Потому что реально заранее знать такой ответ мало кто может. А вот думать головой в стрессовой ситуации и разные варианты предалагть (замеряя из бенчмарком, например) - это уже говорит о уровне человека

Есть такие компании, которые месяцами из-за таких вот тестов не могут человека себе найти ) Пропуская мимо перспективных чуваков из-за тупых тестов мало кому понятных, кроме их самих )

Страница 48 из 1594