![]() |
VOOZH | about |
Reversing the string means the last character will be the first character, second last character will be second character and so on. In C++, we can reverse a string in various different ways as show below:
Table of Content
C++ STL provides a built-in function reverse(), which can be used to reverse the string efficiently.
Example
dlroW olleH
Time Complexity: O(n), where n is the length of string.
Auxiliary Space: O(1)
In C++, reverse iterators such as string.rbegin() and string.rend() are used to allow the traversal of string in reverse. We can use them to construct temporary reversed version of the string and then assign it to the original string.
Example
dlroW olleH
Time Complexity: O(n), where n is the length of string.
Auxiliary Space: O(n), for temporary reversed string.
A stack can also be used to reverse a string due to its LIFO (Last In First Out) property. We can push all characters of the string into a stack and clear the current string. Then we pop characters from the stack and append them to the string one by one, resulting in the reversed string.
Example
dlroW olleH
Time Complexity: O(n), where n is the length of string.
Auxiliary Space: O(n), for stack.
In two-pointer technique, we use two pointers: one starting at the beginning (left) and one at the end (right) of the string. We move them towards the centre of the string and keep swapping the characters they point till they meet each other.
Example
dlroW olleH
Time Complexity: O(n), where n is the length of string.
Auxiliary Space: O(1)
Note: Two pointer technique is implemented in the std::reverse() function.
The two-pointer technique can also be implemented using recursion though it can be less space efficient and harder to understand.
Example
dlroW olleH
Time Complexity: O(n), where n is the length of string.
Auxiliary Space: O(n), for recursive stack.