忽略重复的记录集

时间:2018-11-14 20:27:14

标签: c++ algorithm logging

有一个程序记录了很多信息,其中某些信息在某些情况下往往会重复出现。我的任务是防止这种过度记录,并且我需要有关如何操作的指导。目前,我可以防止连续重复同一条消息,但是在防止出现各种大小不同的唯一日志消息集时,这变得更加棘手。

我试图首先将问题分解为一个较小的问题,使用字符来代表唯一的日志消息。

输入

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

我们可以看到dg被“记录”,根据序列缓冲区中的内容,我们不允许发生的下一个序列为'xz'或'z'

有人知道一种可以检测/预防重复的独特序列的实际算法吗?

我看过this,但它不太符合我的需求。

更多示例

  

输入->所需输出

     
      
  1. ABCABCACD-> ABCACD
  2.   
  3. AAABABACBCBCB-> ABACB
  4.   
  5. ABBABBA-> ABABA
  6.   
  7. ACDACDDDCDC-> ACDC
  8.   

字母代表唯一的日志消息,我想防止重复出现的日志消息集出现。

0 个答案:

没有答案