strcmp für Python oder wie Sie Teilzeichenfolgen effizient (ohne Kopie) sortieren, wenn Sie ein Suffix-Array erstellen

Hier ist eine sehr einfache Möglichkeit, eine zu erstellenSuffix-Array aus einem String in 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:]" erstellt jedoch eine Kopie des Inhalts, die bei großen Inhalten sehr ineffizient wird. Ich frage mich also, ob es eine Möglichkeit gibt, die beiden Teilzeichenfolgen zu vergleichen, ohne sie kopieren zu müssen. Ich habe versucht, den eingebauten Puffer zu verwenden, aber es hat nicht funktioniert.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage