Programming
In this programming tutorial we are going to find the reverse of a string.
We are given a string say "Hello World" and we have to print the reverse of it.
So, first we save the string in a 1D array which will look something like the following.
Hello World +------------+---+---+---+---+---+---+---+---+---+---+---+ | index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10| +------------+---+---+---+---+---+---+---+---+---+---+---+ | characters | H | e | l | l | o | | W | o | r | l | d | +------------+---+---+---+---+---+---+---+---+---+---+---+
Now, to reverse the string we can set two markers, one at the start (0th index) and the other at the end (10th index).
Next, we compute the middle index.
middle
middle = (start + end) / 2
Note! The value of middle is a floor value. So, if we get 2.5 then we take 2.
We will move the start from left to right towards the middle - 1 index. And we will move the end index from right to left towards the middle index. And we will keep swapping the characters at index start with index end.
start
middle - 1
end
Python
s = ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd'] print('before', s) start = 0 end = len(s) - 1 while start < end: s[start], s[end] = s[end], s[start] start += 1 end -= 1 print('after', s)
before ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd'] after ['d', 'l', 'r', 'o', 'W', ' ', 'o', 'l', 'l', 'e', 'H']
This has time complexity of O(n).
O(n)
Feel free to try this out in other programming languages. Have fun coding.