小算法-如何递归实现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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容