strcmp para python o cómo ordenar las subcadenas de manera eficiente (sin copia) al construir una matriz de sufijos
Aquí hay una manera muy simple de construir unmatriz de sufijos de una cadena en 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]
Sin embargo, "content [a:]" hace una copia del contenido, que se vuelve muy ineficiente cuando el contenido se hace grande. Así que me pregunto si hay una manera de comparar las dos subcadenas sin tener que copiarlas. Intenté usar el buffer-builtin, pero no funcionó.