java将字符串逆序输出,Javascript每日一学-如何使用JS实现字符串的逆序输出

在前端Javascript面试过程中,字符串的逆序输出是一个很常见的面试题,不仅会考察到基础的前端知识,对于常用的API也是一个考察。那么今天我们就来看看字符串的逆序输出的几种实现方法吧。

题目

逆序字符串题目是这样的,比如给定一个字符串'abcdefg',通过一个算法后输出'gfedcba'。题目很容易理解,不做过多解释,我们直接来看看算法的实现。

我已经整理出来所有算法放到github上,如果有感兴趣的直接去看源码。

https://github.com/zhouxiongking/article-pages/blob/master/articles/reverseString/reverseString.js

算法1-数组reverse

算法1基本思想是借助于数组的reverse方法。首先将字符串转化为字符数组,然后通过调用数组原生的reverse方法进行逆序,得到逆序数组后再通过调用join方法得到逆序字符串。

通过上述的思想,我们得到下面的代码。

算法1

算法2-利用charAt方法

算法2基本思想是利用字符串本身的charAt方法。从尾部开始遍历字符串,然后逐个拼接字符,得到最终的结果。

通过上述的思想,我们得到下面的代码。

064a37c4a8616eaf3187f6aab86b39fd.png

算法2

算法3-递归实现

算法3主要思想是通过递归实现。主要是针对算法2的另一种实现,一般对于循环实现的方法都可以通过递归来实现,只要确定好递归的变量与递归结束的条件。

递归算法的代码以及测试代码如下。

8434d19f90225273707a2c9899ed86f7.png

算法3

算法4-利用call方法

算法4主要思想是通过call方法来改变slice方法的执行主体。将数组的slice方法调用call方法后,可以让字符串具有数组的特性,从而可以直接调用reverse方法,最后再通过调用join方法,得到逆序字符串。

通过上述思想,可以得打下面的算法代码。

02458da492958f60f3cf69bdc79b54f8.png

算法4

算法5-利用栈实现

算法5主要思想是借助栈的先进后出原则。

由于在Javascript中并未提供栈的实现,我们首先需要实现一个栈的数据结构,然后在栈中添加插入和弹出的方法,然后利用插入和弹出方法实现字符串逆序。

首先,我们来看下基本数据结构-栈的实现,其中通过数组实现,包含了入栈和出栈方法。

432dc343cfcaa30c9a79356e6a37d1cd.png

栈的实现

然后通过栈来实现字符串的逆序。

3eec76d57d275b6568a6f7ba5524d9cb.png

利用栈实现逆序输出

结果测试

针对上面的五种方法,我们统一进行测试,看看结果是否返回正确。

5e0cf1c351359d5b5b80bc7b5f47bbe5.png

结果测试

通过上述的测试代码,结果都返回'sdgfedcba',证明上述的算法都是正确的。

结束语

感兴趣的可以关注下小编噢,小编会持续输出更多优质的文章的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值