从the wikipedia page开始,它使用唯一的终结符字符串$0
,$1
,...,$n-1
来表示n
个字符串s1
的树sn
},...,$i
。
我的问题是:如何处理字符i+1
的字面后缀为s1
的情况?例如,我的第一个字符串example$0
是{{1}}。这样做的聪明方法是什么?
此外,我发现的后缀树的实现主要是针对单个字符串,而不是针对通用版本。给定单个字符串的实现,如何轻松扩展它?
谢谢!
答案 0 :(得分:0)
第一个问题:如果您使用的是Unicode,则可以使用未在您的环境中分配的PUA代码(http://en.wikipedia.org/wiki/Mapping_of_Unicode_characters#Private_use_characters)。从U + E000开始就可以了。如果您使用的是8位ascii,请使用您知道不在字符串中的字节代码 - \ 003(文本结尾)听起来合适 - 而不是'$'。
第二个问题:重新开始,只从当前树而不是空树开始。唯一的终结符保证您永远不会发现自己尝试拆分叶节点。