import java.util.*;
public class Solution {
public String ReverseSentence(String str) {
if(str==null||str.length()==0){
//反复错在这个位置,之前返回的是null值
return str;
}
char chas[]=str.toCharArray();
rolateWord(chas);
return String.valueOf(chas);
}
private void rolateWord(char chas[]){
if(chas==null||chas.length==0){
return;
}
reverse(chas,0,chas.length-1);
//下面对每一个局部的单词进行逆序
//标记一个单词的开始
int start=0;
//标记一个单词的结束
int end=0;
//遍历字符数组
int i=0;
while(i<chas.length){
while(i<chas.length&&chas[i]==' '){
i++;
start=i;
}
while(i<chas.length&&chas[i]!=' '){
i++;
end=i;
}
reverse(chas,start,end-1);
}
}
private void reverse(char chas[],int left,int right){
while(left<right){
char temp=chas[left];
chas[left]=chas[right];
chas[right]=temp;
left++;
right--;
}
}
}
翻转单词的顺序
最新推荐文章于 2020-05-17 20:49:15 发布