


You are given a string ‘STR’ containing space-separated words. A word is a sequence of non-space characters. Your task is to reverse the order of words in ‘STR’.
Note: Try to do it in-place without allocating extra space.
Example:‘STR’ = “when in doubt use brute force”
The reverse order of words in ‘STR’ is: “force brute use doubt in when”.
Note:
1. ‘STR’ does not contain any leading or trailing spaces.
2. The words are always separated by a single whitespace character.
The first line of input contains an integer ‘T’ which denotes the number of test cases. Then, the ‘T’ test cases follow.
The first line and only line of each test case contain a single string ‘STR’.
Output format:
For every test case, return a string with the reverse orders of words as ‘STR’.
Note:
You do not need to print anything; it has already been taken care of. Just implement the function.
1 <= T <= 100
1 <= Length of ‘STR’ <= 10^3
The string ‘STR’ contains only ‘a-z’ and whitespace characters.
Time limit: 1 second
2
when all else fails reboot
java is to javascript what a car is to carpet
reboot fails else all when
carpet to is car a what javascript to is java
Test Case 1:
‘STR’ = “when all else fails reboot”
The reverse order of words in ‘STR’ is: “reboot fails else all when”.
Test Case 2:
‘STR’ = “java is to javascript what a car is to carpet”
The reverse order of words in ‘STR’ is: “carpet to is car a what javascript to is java”.
2
no code has zero defects
whitespace is never white
defects zero has code no
white never is whitespace
Try to convert ‘STR’ into an array of words
Use an array ‘ARR’ to store the words in ‘STR’. Traverse the string ‘STR’ and append each word at the end of ‘ARR’. Use the string ‘RES’ to store the answer. Traverse the array ‘ARR’ in reverse and append the words in ‘ARR’ to ‘RES’ followed by a whitespace character.
O(LEN), where ‘LEN’ is the length of string ‘STR’.
We traverse the string ‘STR’ once to create the array ‘ARR’ in ‘O(LEN)’ time. Similarly, creating the string ‘RES’ from the array ‘ARR’ requires ‘O(LEN)’ time.
O(LEN), where ‘LEN’ is the length of string ‘STR’.
We store the words of the string ‘STR’ in array ‘ARR’ and the reverse order of the words in ‘STR’ in ‘RES’, both requiring ‘O(LEN)’ space.