解题思路:
双指针
提交代码:
class Solution {
public String reverseWords(String s) {
if(s==null||s.length()==0) return s;
String res="";
int p1=s.length()-1,p2;
while(p1>=0&&s.charAt(p1)==' ') p1--;
p2=p1+1;
while(p1>=0&&s.charAt(p1)!=' ') p1--;
res+=s.substring(p1+1,p2);
while(p1>=0) {
while(p1>=0&&s.charAt(p1)==' ') p1--;
p2=p1+1;
if(p2<=0) break;
res+=" ";
while(p1>=0&&s.charAt(p1)!=' ') p1--;
res+=s.substring(p1+1,p2);
}
return res;
}
}
运行结果:
评论区里面有个大神的写法:
class Solution {
public String reverseWords(String s) {
String[] tmp=s.strip().split("//s+");
String res="";
for(int i=tmp.length-1;i>0;i--) {
res+=tmp[i];
res+=" ";
}
return res+tmp[0];
}
}