1.
2.
public class Solution {
public String ReverseSentence(String str) {
if(str.length()==0){
return str;
}
int start=0;
int end=0;
char[] arr=str.toCharArray();
reverse(arr,0,arr.length-1);
while(end<=arr.length-1){
while(end<=arr.length-1 && arr[end]!=' '){
end++;
}
reverse(arr, start, end-1);
end++;
start = end;
}
return new String(arr);
}
public static void reverse(char[] arr,int start,int end){
while(start<end){
char temp=arr[start];
arr[start]=arr[end];
arr[end]=temp;
start++;
end--;
}
}
}
public class Solution {
public String ReverseSentence(String str) {
char[] chars = str.toCharArray();
reverse(chars,0,chars.length - 1);
int blank = -1;
for(int i = 0;i < chars.length;i++){
if(chars[i] == ' '){
int nextBlank = i;
reverse(chars,blank + 1,nextBlank - 1);
blank = nextBlank;
}
}
reverse(chars,blank + 1,chars.length - 1);//最后一个单词单独进行反转
return new String(chars);
}
public void reverse(char[] chars,int low,int high){
while(low < high){
char temp = chars[low];
chars[low] = chars[high];
chars[high] = temp;
low++;
high--;
}
}
}