Skip to main content

0344 - Reverse String (Easy)

https://leetcode.com/problems/reverse-string/

Problem Statement

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.

Example 1:

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

Example 2:

Input: s = ["H","a","n","n","a","h"]
Output: ["h","a","n","n","a","H"]

Constraints:

Approach 1: In-place modification

We iterate the array to process two elements at the same time and swap them. First we swap s[0] and s[n - 1]. Then swap s[1] and s[n - 2] and so on. Therefore, we only swap n / 2 times.

Written by @wingkwong
class Solution {
public:
void reverseString(vector<char>& s) {
int n = (int) s.size();
for (int i = 0; i < n / 2; i++) {
swap(s[i], s[n - 1 - i]);
}
}
};

Approach 2: STL

Written by @wingkwong
class Solution {
public:
void reverseString(vector<char>& s) {
reverse(s.begin(), s.end());
}
};