需求:
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循环改成递归调用吧!
scalaOK。
网友评论