class Solution {
/**
* 没啥追求只求通过555,看了看题解 我是废物,不过练了练手,双指针更加熟悉了
* @param s
* @return
*/
public String reverseWords(String s) {
s = s.trim();//先去掉首尾空白
String res = "";
List<String> list = new ArrayList<String>();
int i = 0, j = 0;
//利用双指针,找到所有的子字符串,存进list集合
for(i = 0 ; i < s.length(); i++) {
if(s.charAt(i)==' ')
continue;
else {
j = i;
while(s.charAt(j) != ' ' && j < s.length()-1)
{
j++;
}
//末尾点的处理
if(j == s.length()-1) {
list.add(s.substring(i, j+1));
break;
}
else {
list.add(s.substring(i, j));
i = j;
}
}
}
//集合反转
Collections.reverse(list);
Iterator<String> it = list.iterator();
//遍历转换
while(it.hasNext()) {
String value =it.next();
res = res + value +" ";
}
//再次去掉尾部空格
res = res.trim();
return res;
}
}
熟练使用双指针,对于字符串问题,基本上能够解决