151. Reverse Words in a String
Intuition
Complexity
Space Complexity
Time Complexity
Code
public String reverseWords(String input) {
// Step 1: Trim input to remove leading/trailing spaces and split by space
String[] words = input.trim().split(" ");
// Step 2: Reverse the array of words
for (int left = 0, right = words.length - 1; left < right; left++, right--) {
String temp = words[left];
words[left] = words[right];
words[right] = temp;
}
// Step 3: Build the final string, skipping extra spaces (i.e., empty strings)
StringBuilder reversedSentence = new StringBuilder();
for (int i = 0; i < words.length; ++i) {
if (words[i].isEmpty()) continue; // Skip empty strings from multiple spaces
if (reversedSentence.length() != 0) reversedSentence.append(" ");
reversedSentence.append(words[i]);
}
return reversedSentence.toString(); // Return the cleaned, reversed sentence
}
Last updated