这是在python中从字符串构建后缀数组的一种非常简单的方法:
def sort_offsets(a, b):
return cmp(content[a:], content[b:])
content = "foobar baz foo"
suffix_array.sort(cmp=sort_offsets)
print suffix_array
[6, 10, 4, 8, 3, 7, 11, 0, 13, 2, 12, 1, 5, 9]
但是,“content[a:]”会复制内容,当内容变大时效率会非常低。所以我想知道是否有一种方法可以比较两个子字符串而不必复制它们。我尝试使用内置缓冲区,但没有奏效。