后缀数组在无指针的编程语言中的实现
在C语言中,比如定义一个字串char s[6],*a[6];如果我们赋值s= "banana ",则循环设置a[i]=&s[i] (0 <=i <6)则可以得到s的后缀数组为:
a[0]= "banana ";
a[1]= "anana ";
a[2]= "nana ";
a[3]= "ana ";
a[4]= "na ";
a[5]= "a ";
注意到这里a只是一个指针数组,也就是尽管a[0]到a[5]依次展示了s中的6个后缀串,但a[0]中的 "banana "、a[1]中的 "anana "等等与s的 "banana "其实是使用的同一块内存-------我想知道:在没有指针的编程语言里,比如python、java,有没有好的办法实现后缀数组a并且仍能与s共享原来字串的内存呢?
[解决办法]
没有指针的编程语言里面,你最好不要去想内存的问题。
[解决办法]
如果语言没有提供相应的库来实现想要的功能,又没有指针等操作内存的手段,那么就说明该语言不适合做这种工作,换呗。