快捷搜索:  汽车  科技

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 列表算法题(Javascript常见面试题-实现字符串的逆序输出)(1)

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方法。从尾部开始遍历字符串,然后逐个拼接字符,得到最终的结果。

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

javascript 列表算法题(Javascript常见面试题-实现字符串的逆序输出)(2)

算法2

算法3-递归实现

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

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

javascript 列表算法题(Javascript常见面试题-实现字符串的逆序输出)(3)

算法3

算法4-利用call方法

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

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

javascript 列表算法题(Javascript常见面试题-实现字符串的逆序输出)(4)

算法4

算法5-利用栈实现

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

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

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

javascript 列表算法题(Javascript常见面试题-实现字符串的逆序输出)(5)

栈的实现

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

javascript 列表算法题(Javascript常见面试题-实现字符串的逆序输出)(6)

利用栈实现逆序输出

结果测试

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

javascript 列表算法题(Javascript常见面试题-实现字符串的逆序输出)(7)

结果测试

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

结束语

今天这篇文章主要针对Javascript中字符串逆序算法进行讲解,这是一道面试过程中很常见的问题,希望大家都能掌握。

猜您喜欢: