题目链接:
JZ44 翻转单词序列
本题思路:
public class Solution {
public String ReverseSentence(String str) {
// 双指针
StringBuilder res = new StringBuilder();
int i = str.length()-1, j = i; // 从后向前划分单词 此时i, j指向最后一个字母
while(i >= 0) {
while(i >= 0 && str.charAt(i) != ' ') // 搜索首个空格
i--; // 此时i指向空格
res.append(str.substring(i + 1, j + 1)); // 添加单词 substring区间[) 故j + 1
res.append(" "); // 添加空格
while(i >= 0 && str.charAt(i) == ' ') // 跳过单词间空格
i--; // 此时i指向下个单词的尾字母
j = i; // 更新j的位置
}
return res.toString().trim(); // 删除首尾空格
}
}