Reverse Words in a String

Given an input string, reverse the string word by word.

Example:

Input: "the sky is blue",
Output: "blue is sky the".

Note:

  • A word is defined as a sequence of non-space characters.

  • Input string may contain leading or trailing spaces. However, your reversed string should not contain leading or trailing spaces.

  • You need to reduce multiple spaces between two words to a single space in the reversed string.

Follow up: For C programmers, try to solve it in-place in O(1) space.

time o(n)

public class Solution {
    public String reverseWords(String s) {
        if(s == null || s.length() == 0){
            return "";
        }
        
         String[] strArr = s.split("\\s+");
        
        
        
        
        StringBuilder builder = new StringBuilder();
        
        for(int i = strArr.length - 1; i>= 0; i--){
            builder.append(strArr[i]);
            builder.append(" ");
        }
        
        String res = builder.toString().trim();
        
        return res;
    }
}

Last updated