Я ищу алгоритм для эффективного сравнения двух строк, не занимая много памяти и за меньшее время. Итак, что я сейчас делаю, сначала сжимаю строку символов, а затем сравниваю и сжатую строку (чтобы избежать ошибок памяти, так как строка может быть очень длинной здесь)Алгоритм сжатия кодированных строк в C/C++
Строка содержит символы из набора [0-9], x, o ,ИКС.
Теперь правило сжатия похоже на то, что нужно сжимать только определенные повторяющиеся токены. Например: «о» является концом маркера и он приходит всегда в конце последовательности одной или более цифр (0-9}, «х», чтобы показать умножение и т.д.
Примеры: 1. 8o8o80 должны сжиматься, как 3х80 2. 8oXXXX должны быть сжаты в 804xX 3. 64o8o8o16o16o должен быть 64o2x8o2x16o и т.д ..
Интересно, есть ли какие-либо существующие алгоритмы сжатия таких строк?
по достоинству оценят любую помощь чтобы отсортировать это. Спасибо!
Как сжимать, а затем сравнивать быстрее, чем просто сравнивать? – Jon
Что случилось с наивным сравнением? Он не использует больше памяти, чем тот, который уже используется двумя строками, и может быть быстрее (потенциально более точным) ... – Nim
@Jon: не быстрее, а эффективнее с памятью, поскольку я получал ошибку в памяти для несжатой строки , – Raj