// Source : https://leetcode.com/problems/reverse-string
// Author : Dean Shi
// Date   : 2017-04-09

/***************************************************************************************
 *
 * Write a function that takes a string as input and returns the string reversed.
 *
 * Example:
 * Given s = "hello", return "olleh".
 *
 *
 ***************************************************************************************/

/**
 * @param {string} s
 * @return {string}
 */
var reverseString = function(s) {
    return s.split('').reverse().join('')
};

// Source : https://leetcode.com/problems/reverse-string
// Author : Dean Shi
// Date   : 2020-04-04

/***************************************************************************************
 * Write a function that reverses a string. The input string is given as an array of
 * characters char[].
 * 
 * Do not allocate extra space for another array, you must do this by modifying the
 * input array in-place with O(1) extra memory.
 * 
 * You may assume all the characters consist of printable ascii characters.
 * 
 * Example 1:
 * 
 * Input: ["h","e","l","l","o"]
 * Output: ["o","l","l","e","h"]
 * 
 * Example 2:
 * 
 * Input: ["H","a","n","n","a","h"]
 * Output: ["h","a","n","n","a","H"]
 * 
 * 
 ***************************************************************************************/

/**
 * @param {character[]} s
 * @return {void} Do not return anything, modify s in-place instead.
 */
var reverseString = function(s) {
    const end = s.length / 2
    for (let i = 0; i < end; i++) {
        [s[i], s[s.length - i - 1]] = [s[s.length - i - 1], s[i]]
    }
};

Update ReverseString