suffixArray

SAを返す. 内部でSA-ISを使用しており, 各文字は[0, B)に収まっている必要がある

SA!T
suffixArray
(
T
)
(
in T[] _s
,
int B = 200
)

Examples

import std.algorithm : equal, map;
string s = "abracadabra";
auto saInfo = s.suffixArray;
assert(equal(saInfo.sa.map!(i => s[i..$]), [
    "",
    "a",
    "abra",
    "abracadabra",
    "acadabra",
    "adabra",
    "bra",
    "bracadabra",
    "cadabra",
    "dabra",
    "ra",
    "racadabra",
]));

Meta