Вычислить расстояние редактирования между 2 очень большими строками

СЦЕНАРИЙ: Учитывая 2 входные строки, мне нужно найти минимальное количество удалений вставок и замен, необходимых для преобразования одной строки в другую. Строки представляют собой текст из 2 файлов. Сравнение должно быть сделано на уровне слов.

Что я сделал, так это реализовал алгоритм редактирования расстояния, который хорошо справляется с работой, используя двумерный массив размера (m*n), где размеры входных строк равны m и n.

ПРОБЛЕМА, с которой я сталкиваюсь, заключается в том, что если значения m и n становятся большими, скажем, более 16 000 я получаю исключение OutOfMemory из-за большого размера массива m*n. Также я сталкиваюсь с фрагментацией памяти и проблемами LargeObjectHeap

ВОПРОС Поиск кода C# для решения проблемы расстояния редактирования для 2 строк очень большого размера (каждая из которых содержит более 20 тыс. Слов) без получения исключения OutOfMemory.

Решения, связанные с MapReduce, DataBase или MemoryMappedFile, невозможны. Будет работать только чистый код C#.

0 ответов

Другие вопросы по тегам