Reverse String

easy string two pointers

Problem

Reverse a string in place. The input is given as an array of characters; modify it directly using O(1) extra memory.

Inputs = ["h","e","l","l","o"]
Output["o","l","l","e","h"]
Walk two pointers from the ends and swap until they meet.

def reverse_string(s):
    l, r = 0, len(s) - 1
    while l < r:
        s[l], s[r] = s[r], s[l]
        l += 1
        r -= 1
function reverseString(s) {
  let l = 0, r = s.length - 1;
  while (l < r) {
    [s[l], s[r]] = [s[r], s[l]];
    l++;
    r--;
  }
}
class Solution {
    public void reverseString(char[] s) {
        int l = 0, r = s.length - 1;
        while (l < r) {
            char t = s[l]; s[l] = s[r]; s[r] = t;
            l++; r--;
        }
    }
}
void reverseString(vector<char>& s) {
    int l = 0, r = s.size() - 1;
    while (l < r) {
        swap(s[l], s[r]);
        l++; r--;
    }
}
Time: O(n) Space: O(1)