反转字符串 简单 字符串

题目描述

编写一个函数,其作用是将输入的字符串反转过来。

示例 1:

输入: "hello"
输出: "olleh"

示例 2:

输入: "A man, a plan, a canal: Panama"
输出: "amanaP :lanac a ,nalp a ,nam A"

解题思路

  1. 第一种解题思路就是使用 charAt 遍历这个字符串,然后将其拼接成一个反转的字符串。
  2. 第二种思路是使用栈的方式,因为栈先进后出,这就能满足我们的需求了。
  3. 第三种也是最简单的方法,但是要使用 js 自带的一些 api,将其转化成数组,然后反转,最后再拼接成字符串。
  4. 第四种比较难以理解,就是位运算,当变量的类型是整形或者字符型的时候,位运算是一个非常有用的工具,尤其是异或运算,有很多同学可能会不理解这种算法。
    首先,我们介绍一下异或操作:
    当两两数值相同为否,而数值不同为真。写作A^B。
    我们需要下面几种算式:
    
    A^B = B^A
    A^0 = A
    A^A = 0
    
    那么:
    我们令 A = A^B
    并且 B = B^A = B^A^B = A
    A = A^B = A^B^A = B
    从而达到了交换两个变量的目的,但是我们同时要牢牢记住上面的条件,在什么样的情况下才能够使用位运算。
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
  5. 第五种,我们可以使用递归的方式进行反转字符串的操作,当然了这种操作非常可能会栈溢出,这里只是提供一种思路,这道题我们就直接简单粗暴好了。

代码

/**
 * @param {string} s
 * @return {string}
 */
var reverseString = function(s) {
  return s.split('').reverse().join('');
};
1
2
3
4
5
6
7
Last Updated: 12/4/2018, 12:07:08 AM