Reverse the order of the words
A text filter turns a sentence back to front, word by word, without disturbing the words themselves.
- Only the order of the words changes; the letters inside each word stay put.
- Runs of whitespace collapse to one space, and the ends are trimmed.
- Text with no words gives an empty string.
reverseWords(text: string) → string
Java needs a compiler and Drill does not host one yet, so this page is the reference rather than an exercise: the problem, worked examples, and the solution in full. To type it out, the same problem runs in Python.
Where you start
String reverseWords(String text) {
}
Worked examples
| Call | Result |
|---|---|
reverseWords("the quick brown fox") | "fox brown quick the" |
reverseWords(" a b ") | "b a" |
reverseWords("one") | "one" |
reverseWords("") | "" |
Hint
Split on whitespace, reverse the list, join with a single space.
Reference solution in Java
String reverseWords(String text) {
List<String> words = new ArrayList<>();
for (String w : text.trim().split("\\s+")) if (!w.isEmpty()) words.add(w);
Collections.reverse(words);
return String.join(" ", words);
}