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 <= 105s[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?