解决思路
字符串
先处理字符串,将首尾空格都删除;
倒序遍历字符串,当第一次遇到空格时,添加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();}
