Size: a a a

Regular Expressions

2021 January 14

J

Jegors in Regular Expressions
Кто хорошо знает работу регулярок — какова сложность алгоритма?
источник

J

Jegors in Regular Expressions
Оптимальный O(n)
источник

J

Jegors in Regular Expressions
А как работает регулярка?
источник

J

Jegors in Regular Expressions
Под капотом
источник

П

Павел in Regular Expressions
напрямую зависит от конкретной регулярки, можно ведь в лоб искать, а можно рекурсии понакрутить
источник

J

Jegors in Regular Expressions
Какова скорость поиска “([a-z]).*\1”? Больше чем O(n)?
источник

DE

Denis Efremov in Regular Expressions
Так их не мерят
источник

J

Jegors in Regular Expressions
Я к чему, есть задание написать алгоритм который определит isogram или нет со сложностью O(n)
источник

П

Павел in Regular Expressions
ну хочет он мерять, почему бы и нет
источник

П

Павел in Regular Expressions
Jegors
Какова скорость поиска “([a-z]).*\1”? Больше чем O(n)?
равно O(n)
источник

J

Jegors in Regular Expressions
Павел
равно O(n)
Вот как бы так должно быть. По логике.
источник

J

Jegors in Regular Expressions
Но может быть и O(n^2)
источник

СД

Стас Донцов... in Regular Expressions
Denis Efremov
^(?:([a-z])(?!.*\1))*$
ну вот это судя по дебагу n2
источник

П

Павел in Regular Expressions
Jegors
Но может быть и O(n^2)
от чего зависит слово "может" ?
источник

J

Jegors in Regular Expressions
Если движок берёт первый символ и затем смотрит всю строку есть ли совпадение, затем второй, третий... то это brute force == O(n^2)
источник

J

Jegors in Regular Expressions
У меня есть подозрение, что именно так и работает движок регулярки
источник

J

Jegors in Regular Expressions
Берёт последовательно один символ за другим и просматривает строку до конца
источник

П

Павел in Regular Expressions
это уже зависит от кривизны используемого движка регекспа, нужно брать только один. Или как раз нужно сравнивать именно движки?
источник

J

Jegors in Regular Expressions
Java
источник

DE

Denis Efremov in Regular Expressions
function isIsogram (str) {
 const cut = str.replace('-', '')
 return new Set(cut).size === cut.length
}
источник