lt.151. 颠倒字符串中的单词
- 本题等同于 剑指 Offer 58 - I. 翻转单词顺序
[案例需求]

[思路分析一, 各种api的使用]
[代码实现]
class Solution {
public String reverseWords(String s) {
String[] strs = s.split("\\s+");
int left = 0;
int right = strs.length - 1;
while(left < right){
String temp = strs[left];
strs[left] = strs[right];
strs[right] = temp;
++left;
--right;
}
return String.join(" ", strs).trim();
}
}

[API解决思路二, ]
class Solution {
public String reverseWords(String s) {
String[] words = s.split(" ");
StringBuilder sb = new StringBuilder();
int len = words.length;
for(int i = len - 1; i >= 0; i--){
String str = words[i];
if(str.equals(""))continue;
sb.append(str);
}
return sb.toString().trim();
}
}

[思路分析二, 不借助API的最优实现]
[代码实现]
class Solution {
public String reverseWords(String s) {
char[] charArray=s.toCharArray();
int left=0,right=s.length()-1;
while(charArray[left]==' '){
left++;
}
while(charArray[right]==' '){
right--;
}
StringBuilder sb=new StringBuilder();
while(left<=right){
int index=right;
while(index>=left&&charArray[index]!=' '){
index--;
}
for(int i=index+1;i<=right;i++){
sb.append(charArray[i]);
}
if(index>left) sb.append(' ');
while(index>=left&&charArray[index]==' '){
index--;
}
right=index;
}
return sb.toString();
}
}