Reverse String

String Simulation

Problem

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-placewith O(1) extra memory.

You may assume all the characters consist of printable ascii characters.

For example:

Input: ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]
Input: ["H","a","n","n","a","h"]
Output: ["h","a","n","n","a","H"]

Thought Process

  • You can use 2 pointer approach

  • You can also do recursive approach but this will take more space

Solution

class Solution:
    def reverseString(self, s: List[str]) -> None:
        """
        Do not return anything, modify s in-place instead.
        """
        left, right = 0, len(s)-1
        while(left<right):
            s[left], s[right] = s[right], s[left]
            left+=1
            right-=1
        return s
        

Time Complexity

  • Time: O(n) for both 2 pointer and recursive

  • Space: O(1) for 2 pointer but O(n) for recursive because of call stack

Last updated