import java.util.*;
public class Solution {
    // 理由栈先进后出的特性,来进行字符串的反转
    // 要注意的是,str中只是单词的顺序反了,不是字母整体的顺序反了。
    // 思路:首先要将单词根据空格进行分割,之后对单词的顺序进行翻转。
    public String ReverseSentence(String str) {
        if(str.length() == 0 || str.length() == 1) return str;
        String[] strs = str.split(" ");

        Stack<String> stack = new Stack<>();

        for(int i = 0;i<strs.length;i++){
            // 注意这样添加空格,最后会多出来一个空格要删除掉
            stack.add(strs[i]+" ");
        }

        StringBuilder res_str = new StringBuilder();
        while(!stack.isEmpty()){
            res_str.append(stack.pop());
        }
        res_str.deleteCharAt(res_str.length()-1);

        return res_str.toString();
    }
}