Problem Statement
Write a function that reverses a string. The input string is given as an array of characters char[].
Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.
You may assume all the characters consist of printable ascii characters.
Example
Input: ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]Solution
Its very simple problem to solve.
- Take two index variables
- Start one from left, other from extreme end
- Start swapping their values, and move them
Left in forward, and extreme right in backward - Repeat above untill both index variables cross each other
Code
public void reverseString(char[] s) {
int left = 0;
int end = s.length-1;
while (left < end) {
//swap
char temp = s[left];
s[left] = s[end];
s[end] = temp;
left ++;
end --;
}
}Complexity
Its O(n)













