0300 - 0399
0344 - Reverse String (Easy)
Problem Link
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:
1 <= s.length <= 10^5s[i]is a printable ascii character.
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.
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
class Solution {
public:
void reverseString(vector<char>& s) {
reverse(s.begin(), s.end());
}
};