题解 | #翻转单词序列#
翻转单词序列
http://www.nowcoder.com/practice/3194a4f4cf814f63919d0790578d51f3
使用双指针,i指向前面,j指向后面(其实也是双指针解题)。每次遇到空格进行截取,如果遇到了为空(i,j指向同一个位置,说明遇到了多个空格),不为空则为一个单词则进行截取。要对最前面没有空格的情况进行特殊处理。
public class Solution {
public String ReverseSentence(String s) {
int lens=s.length();
if(lens<1){
return s;
}
int i=lens-1,j=lens-1;
String result="";
boolean flag=false;
while(i>=0){
if(s.charAt(i)==' '){
if(!s.substring(i+1,j+1).isEmpty()){
String s2=s.substring(i+1,j+1);
result+=s2;
result+=" ";
j=i;
}
j--;
i--;
}else{
i--;
}
// 处理最前面没有空格的情况
if(i==0 && s.charAt(i)!=' ' ){
result+=s.substring(i,j+1);
flag=true;
}
}
if(flag){
return result;
}else{
int len=result.length();
return result.substring(0,len-1);
}
}
} 
