小算法-如何递归实现String的reverse

需求:

Array(H, e, l, l, o)  ==》 Array[Char] = Array(o, l, l, e, H)

递归实现。

看似很简单的算法问题,但是在没有任何思考的前提下手撸代码的成功率也是很低的。

既然这是java本身就提供的操作,那不妨去看下jdk是如何实现的。


jdk1.8-java.lang.AbstractStringBuilder

其实就是for循环把数组第一个元素跟最后一个元素对调,以此类推。(n-1) >> 1表示循环数组长度的一半大小。

//TODO

For example, reversing

    * "\u005CuDC00\u005CuD800" produces "\u005CuD800\u005CuDC00" which is

    * a valid surrogate pair.  这个注释目前还没搞懂什么意思。


那我们就把for循环改成递归调用吧!


scala


OK。

你可能感兴趣的:(小算法-如何递归实现String的reverse)