使用双指针 倒序遍历字符串 ss ,记录单词左右索引边界 ii , jj ;
每确定一个单词的边界,则将其添加至单词列表 resres ;
最终,将单词列表拼接为字符串,并返回即可。
复杂度分析:

public class Solution {
    public String ReverseSentence(String str) {
        // 两边去除空格
        str = str.trim();
        StringBuilder sb = new StringBuilder();
        int j = str.length()-1, i =j;
        while (i >= 0){
            while(i >= 0 && str.charAt(i) != ' '){
                i--;
            }
            sb.append(str.substring(i+1,j+1)+" ");
            while(i >= 0 && str.charAt(i) == ' '){
                i--;
            }
            j = i;
        }
        return sb.toString().trim();
    }
}