1.题目

2.解法(两次翻转法,遍历)
public class Solution {
private char[] arr;
public void reverse(int begin, int end){
char tmp;
while(begin < end){
tmp = arr[begin];
arr[begin] = arr[end];
arr[end] = tmp;
++begin;
--end;
}
System.out.println(arr);
}
public String ReverseSentence(String str) {
if(str == null){
return null;
}
this.arr = str.toCharArray();
reverse(0, arr.length-1);
int start = 0;
for (int i = 0; i <= arr.length; i++) {
if(i == arr.length || arr[i] == ' '){
reverse(start, i-1);
start = i + 1;
}
}
;
return new String(arr);
}
}
时间复杂度为O(n), 空间复杂度为O(n) ,空间复杂度挺高的