Problem: 151. 反转字符串中的单词
👨🏫 参考思路
💖 API 大法
时间复杂度: O ( n ) O(n) O(n)
空间复杂度: O ( n ) O(n) O(n)
class Solution {
	public String reverseWords(String s)
	{
		s = s.trim();// 去除首尾空格
		List<String> list = Arrays.asList(s.split("\\s+"));
		Collections.reverse(list);
		return String.join(" ", list);// 给 list 中的两个元素之间加上空格
	}
}
💖 双指针
class Solution {
    public String reverseWords(String s) {
        s = s.trim();                                    // 删除首尾空格
        int j = s.length() - 1, i = j;
        StringBuilder res = new StringBuilder();
        while (i >= 0) {
            while (i >= 0 && s.charAt(i) != ' ') i--;     // 搜索首个空格
            res.append(s.substring(i + 1, j + 1) + " "); // 添加单词
            while (i >= 0 && s.charAt(i) == ' ') i--;     // 跳过单词间空格
            j = i;                                       // j 指向下个单词的尾字符
        }
        return res.toString().trim();                    // 转化为字符串并返回
    }
}




















