javascript 列表算法题(Javascript常见面试题-实现字符串的逆序输出)
javascript 列表算法题(Javascript常见面试题-实现字符串的逆序输出)通过上述的思想,我们得到下面的代码。算法2基本思想是利用字符串本身的charAt方法。从尾部开始遍历字符串,然后逐个拼接字符,得到最终的结果。https://github.com/zhouxiongking/article-pages/blob/master/articles/reverseString/reverseString.js算法1基本思想是借助于数组的reverse方法。首先将字符串转化为字符数组,然后通过调用数组原生的reverse方法进行逆序,得到逆序数组后再通过调用join方法得到逆序字符串。算法1
前言在前端Javascript面试过程中,字符串的逆序输出是一个很常见的面试题,不仅会考察到基础的前端知识,对于常用的API也是一个考察。那么今天我们就来看看字符串的逆序输出的几种实现方法吧。
Javascript
题目逆序字符串题目是这样的,比如给定一个字符串'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方法。从尾部开始遍历字符串,然后逐个拼接字符,得到最终的结果。
通过上述的思想,我们得到下面的代码。
算法2
算法3-递归实现算法3主要思想是通过递归实现。主要是针对算法2的另一种实现,一般对于循环实现的方法都可以通过递归来实现,只要确定好递归的变量与递归结束的条件。
递归算法的代码以及测试代码如下。
算法3
算法4-利用call方法算法4主要思想是通过call方法来改变slice方法的执行主体。将数组的slice方法调用call方法后,可以让字符串具有数组的特性,从而可以直接调用reverse方法,最后再通过调用join方法,得到逆序字符串。
通过上述思想,可以得打下面的算法代码。
算法4
算法5-利用栈实现算法5主要思想是借助栈的先进后出原则。
由于在Javascript中并未提供栈的实现,我们首先需要实现一个栈的数据结构,然后在栈中添加插入和弹出的方法,然后利用插入和弹出方法实现字符串逆序。
首先,我们来看下基本数据结构-栈的实现,其中通过数组实现,包含了入栈和出栈方法。
栈的实现
然后通过栈来实现字符串的逆序。
利用栈实现逆序输出
结果测试针对上面的五种方法,我们统一进行测试,看看结果是否返回正确。
结果测试
通过上述的测试代码,结果都返回'sdgfedcba',证明上述的算法都是正确的。
今天这篇文章主要针对Javascript中字符串逆序算法进行讲解,这是一道面试过程中很常见的问题,希望大家都能掌握。