Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет superhuman ([info]superhuman)
@ 2017-04-28 13:17:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Возникла интересная задача. В семантической базе много файлов, и у некоторых префикс совпадает. Задача - выделить общий префикс, но не для двух строк, а для эн строк.

И вот эта обобщённая постановка - совсем другая, чем для двух. Первым делом нужно проименовать строки, а вторым - понять, что логично возвращать не просто префикс, а общие префиксы для подмножеств этих строк. Действительно, общие префиксы образуют структуру поддерева на диаграмме подмножеств (множества именованных строк). Тривиальное подмножество даёт кратчайший общий префикс, а дальше (вниз по диаграмме) префиксы растут.

Однако, смотрю в инете, это почти что базисное дерево ака radix tree. Только в данном случае дерево не нужно возвращать, а достаточно раскатать его и возвращать список. Само же дерево естественным образом возникает при рекурсии, но остаётся неявным. И тут, как обычно, видно преимущество ФП: функция на двух строках естественным образом обобщается на эн.