Size: a a a

2020 March 11

DK

Dmitry Kozyrev in pro.algorithms
Вот так
источник

DK

Dmitry Kozyrev in pro.algorithms
Для такого бора алгоритм обязан работать корректно
источник

DK

Dmitry Kozyrev in pro.algorithms
Начинает с корня, в левом поддереве 4 листа, значит идет вправо (2-й бит 1), в левом поддереве 2 листа, значит идет вправо (1-й бит 1), в левом поддереве 1 лист, значит идет вправо (0-й бит 1)
Ответ 00000111 или 7
источник

@

@mr_tron in pro.algorithms
Люди, у меня вопрос. Мне нужно по нескольким десяткам тысяч строк искать отдельные строки.
причем правило такое что если есть строка
"Моя длинная строка"
то запрос
"ояннк" должен находить эту строку потому что эти буквы там встречаются именно в таком порядке.
оя длинная строка"
я пока вижу только вариант для каждой отдельной строки во всём наборе идти по строке и сравнивать буквы по очереди.
А нет варианта как-то это ускорить или построить индекс? Если да, то в какую сторону копать?
источник

@

@mr_tron in pro.algorithms
Может для этого есть какой-то готовый известный алгоритм
источник

TS

Tigran Saluev in pro.algorithms
делаешь регулярное выражение о.*я.*н.*н.*к, прогоняешь
источник

@

@mr_tron in pro.algorithms
это равносильно тому что я написал. проверить каждую строку
источник

@

@mr_tron in pro.algorithms
возможно будет быстрее за счёт каких-нибудь оптимизаций в библиотеке регулярных выражений, а может и нет.
источник

TS

Tigran Saluev in pro.algorithms
вроде регулярки на множественных строках можно ускорять суффиксными деревьями
источник

CD

Constantine Drozdov in pro.algorithms
Tigran Saluev
вроде регулярки на множественных строках можно ускорять суффиксными деревьями
регулярки же NDFA
источник

TS

Tigran Saluev in pro.algorithms
можно ж детерминизировать
источник

CD

Constantine Drozdov in pro.algorithms
Tigran Saluev
можно ж детерминизировать
получишь неполином состояния
источник

TS

Tigran Saluev in pro.algorithms
F, что тут сказать
источник

TS

Tigran Saluev in pro.algorithms
но это неполином от регулярки, а не от количества строк, по которым надо пройтись
источник

TS

Tigran Saluev in pro.algorithms
может иметь смысл
источник

CD

Constantine Drozdov in pro.algorithms
учитывая что подпоследовательности за произведение длин при подготовке, очень сомневаюсь
источник

CD

Constantine Drozdov in pro.algorithms
в смысле за количество умножить на сумму длин
источник

CD

Constantine Drozdov in pro.algorithms
@mr_tron
Люди, у меня вопрос. Мне нужно по нескольким десяткам тысяч строк искать отдельные строки.
причем правило такое что если есть строка
"Моя длинная строка"
то запрос
"ояннк" должен находить эту строку потому что эти буквы там встречаются именно в таком порядке.
оя длинная строка"
я пока вижу только вариант для каждой отдельной строки во всём наборе идти по строке и сравнивать буквы по очереди.
А нет варианта как-то это ускорить или построить индекс? Если да, то в какую сторону копать?
ну индекс всегда одинаково строится для подпоследовательностей, переход по каждой букве предпросчитывается
источник

АГ

Александр Горнак in pro.algorithms
Dmitry Kozyrev
Начинает с корня, в левом поддереве 4 листа, значит идет вправо (2-й бит 1), в левом поддереве 2 листа, значит идет вправо (1-й бит 1), в левом поддереве 1 лист, значит идет вправо (0-й бит 1)
Ответ 00000111 или 7
Спасибо!
источник

A

Aragaer in pro.algorithms
Tigran Saluev
делаешь регулярное выражение о.*я.*н.*н.*к, прогоняешь
тут беда в том, что в случае, если не нашлось, оно будет очень долго мучать
источник