Description: Write a function that reverses a string. The input string is given as an array of characters s.

You must do this by modifying the input array in-place with O(1) extra memory.

Code:

def reverseString(self, s: List[str]) -> None:
    """
    Do not return anything, modify s in-place instead.
    """

    left = 0
    right = len(s) - 1

    while left < right:
        s[left], s[right] = s[right], s[left]
        left += 1
        right -= 1

Efficiency:

Time Complexity: O(n)

Space Complexity: O(1)

Test:

s = ["h","e","l","l","o"]
reverseString(s) #["o","l","l","e","h"]
print(s)

s = ["H","a","n","n","a","h"]
reverseString(s) #["h","a","n","n","a","H"]
print(s)