Решение задач с анаграммами натолкнуло на мысль: Сколько останется слов, если удалить все анаграммы и сабанграммы из словаря русского языка В найденном словаре больше 1,5 млн слов в различных формах Можно сравнить каждое слово с каждым, но для 1,5 млн записей это долго и неоптимально. В мире с бесконечной памятью можно сгенерировать подстроки всех перестановок каждого слова и проверить наш словарь на них Но есть ли решение получше? Читать дальше →
Задача с LeetCode.Дан массив слов words. Слово содержит латинские буквы в нижнем регистре a-z. Проверить пары смежных слов и удалить , когда и - анаграммы.Найдем группы смежных анаграмм и оставим в массиве первую строку каждой группы. Читать далее
Полнотекстовый поиск vs. Векторный поиск: в чём разница и когда их использовать? Технологии поиска информации сильно продвинулись вперёд. Раньше был доступен только поиск по ключевым словам, но теперь, благодаря машинному обучению, появился векторный поиск, который помогает…
Что такое бинарный поиск? Когда нужно выполнить поиск в массиве, простейшим способом может быть использование indexOf() или, возможно, цикла for(). Любой из этих способов будет начинать перебирать массив начиная с начала и переходить по каждому элементу массива до тех пор, пока не будет найдено нужное значение. Теперь сравним это с бинарным поиском. Бинарный поиск позволяет выполнять поиск в отсортированном массиве путем многократного разбиения массива пополам. Читать дальше →