循环后缀数组创建

时间:2014-12-04 19:52:25

标签: java sorting

对于作业问题,我们给出一个长度为n的字符串,并且我们被告知要创建已排序的后缀并对它们进行排序,以便我们可以返回对应于第i个原始索引的字符串。排序列表中的索引。例如,给定字符串" bears",我们如下:

Commercial Photography

换句话说,final_index [i]值为2意味着最初在索引2处的后缀位于排序列表中的索引i处。

我的问题是显而易见的解决方案,使用substring并构建sorted_suffixes然后对它们进行排序是不允许的,因为我们不允许显式构建后缀。如何克服这种限制?谢谢您的帮助。

1 个答案:

答案 0 :(得分:2)

使用比较器通过调用对后缀进行排序 public static void sort(T [] a,Comparator c);

将字符串转换为字符数组

在比较器定义比较中,它按字典顺序排序后缀,一次扫描一个字符...... 你不需要明确地存储后缀....

使用所有包装类而不是原始类