解决思路
字符串
先处理字符串,将首尾空格都删除;
倒序遍历字符串,当第一次遇到空格时,添加s[i + 1: j](即添加一个完整单词);
然后,将直至下一个单词中间的空格跳过,并记录下一个单词尾部j;
继续遍历,直至下一次遇到第一个空格,回到1.步骤;
由于首部没有空格,因此最后需要将第一个单词加入,再return。
public String reverseWords(String s){
StringBuffer res = new StringBuffer();
//去掉最后面的空格
s = s.trim();
//从最后面开始遍历
int i = s.length() - 1,j = s.length();
while (i > 0){
//如果到了空格
if (s.charAt(i) == ' '){
//把空格之间的加入进去
res.append(s.substring(i + 1,j));
res.append(' ');
//去掉之间的空格
while (s.charAt(i) == ' ')
i--;
j = i + 1;
}
i--;
}
return res.append(s.substring(0,j)).toString();
}