Игнорирование повторяющихся наборов ведения журнала

Есть программа, которая регистрирует много информации, часть из которых имеет тенденцию повторяться в определенных ситуациях. Мне было поручено предотвратить это чрезмерное ведение журнала, и мне нужно какое-то направление относительно того, что делать. В настоящее время я могу предотвратить повторение одного и того же сообщения в строке, но оно становится намного сложнее, если не допустить появления уникальных наборов сообщений журнала различного размера.

Я попытался сначала разбить проблему на более мелкую, с помощью которой я использую символы для представления уникальных сообщений журнала.

вход

aaaaababababacdefgfggfabcddggddgg

Выход

abacdefgfabcdg
0 : Hash: 100, Msg: d
1 : Hash: 103, Msg: g

Это вывод для моей текущей программы, которая работает для 1-2 уникальных персонажей. Все символы, отображаемые в строке, представляют собой сообщения, которые регистрируются, и следующие две строки показывают, что содержит мой текущий буфер, используемый для сравнения последовательностей. Поэтому, если бы я добавил «xz» к исходному вводу, я получил бы следующий вывод

abacdefgfabcdgdg
0 : Hash: 120, Msg: x
1 : Hash: 122, Msg: z

Как мы можем видеть d, g get «logged», и следующая последовательность, которую мы не допустим, будет ‘xz’ или ‘z’ в зависимости от того, что находится в буфере последовательности.

Кто-нибудь знает о реальном алгоритме, который может обнаружить / предотвратить повторяющиеся уникальные последовательности?

Я смотрел на этот но это не совсем соответствует моим потребностям.

Больше примеров

Ввод -> Желаемый выход

  1. ABCABCACD -> ABCACD
  2. AAABABACBCBCB -> ABACB
  3. ABBABBA -> ABABA
  4. ACDACDDDCDC -> ACDC

Буквы представляют собой уникальные сообщения журнала, и я бы хотел, чтобы повторяющиеся наборы сообщений журнала не отображались.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector