0344. Reverse String
Easy | String | 152 ms (98.00%), 21.2 MB (57.89%)
Source: LeetCode - Reverse String GitHub: Solution / Performance
Write a function that reverses a string. The input string is given as an array of characters s.
Follow up: Do not allocate extra space for another array. You must do this by modifying the input array in-place with O(1) extra memory.
Constraints:
- 1 <= s.length <= 105
- s[i]is a printable ascii character.
Input: s = ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]
Input: s = ["H","a","n","n","a","h"]
Output: ["h","a","n","n","a","H"]class Solution:
    def reverseString(self, s: List[str]) -> None:
        """
        Do not return anything, modify s in-place instead.
        """
        # (base case)
        if len(s) == 1: return s
        # ==================================================
        #  String                                          =
        # ==================================================
        # time  : O(n)
        # space : O(1)
        
        left, right = 0, len(s) - 1
        while left < right:
            s[left], s[right] = s[right], s[left]
            left, right = left + 1, right - 1class Solution {
    /**
     * @time  : O(n)
     * @space : O(1)
     */
    
    public void reverseString(char[] s) {
        /* base case */
        if(s.length == 1) return;
        
        int l = 0, r = s.length - 1;
        while(l <= r) {
            char tmp = s[l];
            s[l] = s[r];
            s[r] = tmp;
                
            l++;
            r--;
        }
    }
}Last updated
Was this helpful?