我即将实现Boyer-Moore模式匹配算法的一个变体(具体地说是Sunday算法),我问自己:我的字母表大小是多少?
这取决于编码(=可能的字符数)还是我可以假设我的字母表由256个符号组成(=一个字节可以表示的符号数)?
在许多其他情况下,将字符视为字节将是一个问题,因为根据编码的不同,一个字符可能由多个字节组成,但在我的例子中,如果两个字符串具有相同的编码,那么相等的字符将由相等的字节序列表示,因此我假设这并不重要。
那么:我是否必须考虑编码,并假设一个由实际字符组成的字母表(对于Unicode,> 90000 ),或者我是否可以将文本和模式作为字节流处理?
发布于 2011-05-20 13:50:34
如果为self-synchronizing,则多字节编码可以与面向字节的搜索例程一起使用。
因此,您可以通过以下方式安全地使用Boyer-Moore:
但不能将其与一起使用:
ISO 2022
https://stackoverflow.com/questions/6055964
复制相似问题