我有一系列SQL调用,我想用它来检测循环(因此不必要的重复sql调用),但它让我想到了这个更普遍的问题.
给出一个清单,比方说 [a,b,c,b,c,a,b,c,b,c,a,b,b]
[a,b,c,b,c,a,b,c,b,c,a,b,b]
有什么方法可以把它变成 a,[[b,c]*2,a]*2,b*2
a,[[b,c]*2,a]*2,b*2
要么, [a,[b,c]*2]*2,a,b*2
[a,[b,c]*2]*2,a,b*2
也就是说,检测重复(可能是嵌套的).
查看Lempel-Ziv-Welsh压缩算法.它建立在检测字符串中的重复并利用它们进行压缩的基础上.我相信你可以使用Trie .