Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何找到与给定后缀数组匹配的字符串?_Arrays_String_Algorithm_Restore_Suffix Array - Fatal编程技术网

Arrays 如何找到与给定后缀数组匹配的字符串?

Arrays 如何找到与给定后缀数组匹配的字符串?,arrays,string,algorithm,restore,suffix-array,Arrays,String,Algorithm,Restore,Suffix Array,我有。如何获取字符串,哪个后缀数组将等于给定数组 比如说。让我有这个数组:[7,6,4,2,1,5,3]。然后字符串banana$对我来说很好,因为get_suffix_array(banana$)==[7,6,4,2,1,5,3]您可以根据约束构建一个函数,然后运行,并根据生成的顺序将字母分配给节点 首先为未知字母构造节点,每个节点一个(除了$) 第一个条目总是数组的长度,因为它是$。这没有给我们什么 不过,下面的条目都给我们提供了约束条件 例如,因为第二个条目是数组的长度减去一,所以它不能大

我有。如何获取字符串,哪个后缀数组将等于给定数组

比如说。让我有这个数组:
[7,6,4,2,1,5,3]
。然后字符串
banana$
对我来说很好,因为
get_suffix_array(banana$)==[7,6,4,2,1,5,3]
您可以根据约束构建一个函数,然后运行,并根据生成的顺序将字母分配给节点

首先为未知字母构造节点,每个节点一个(除了
$

第一个条目总是数组的长度,因为它是
$
。这没有给我们什么

不过,下面的条目都给我们提供了约束条件

例如,因为第二个条目是数组的长度减去一,所以它不能大于任何其他字母。因此,将一条边从该节点放置到其他每个节点。
然而,如果它是数组的长度减去2,那么会有一个字母比它小,但它会比所有其他字母都小。您可以从后缀数组中找到较小的元素,并将节点从它放置到最后一个字母,从最后一个字母放置到所有其他字母,等等。

您无法从其后缀数组还原字符串。另外,
bapapa$
具有相同的数组。@AmiTavory,我想还原任何具有相同后缀数组的字符串。也许你应该重新格式化标题。@AmiTavory,我已经编辑过了。好的,谢谢。现在好多了。