Reverse a String In Place

Problem

Reverse a string in place, given as a character array.

Input:  s = ['h','e','l','l','o']
Output: ['o','l','l','e','h']

Python Solution

def reverse_string(s):
    left, right = 0, len(s) - 1
    while left < right:
        s[left], s[right] = s[right], s[left]
        left += 1
        right -= 1
    return s

C++ Solution

void reverseString(vector<char>& s) {
    int left = 0, right = s.size() - 1;
    while (left < right) {
        swap(s[left], s[right]);
        left++; right--;
    }
}

Java Solution

class Solution {
    public void reverseString(char[] s) {
        int left = 0, right = s.length - 1;
        while (left < right) {
            char temp = s[left]; s[left] = s[right]; s[right] = temp;
            left++; right--;
        }
    }
}

Complexity

Time: O(n) — each character is swapped once. Space: O(1) — reversed in place with two pointers.

Written by Lorens Mishra

Software Engineer Notes Management System Administrator

Discussion

0 comments
Sign in to join the discussion.

No comments yet. Be the first to say something.