需要注意一下几点
1. 可能存在多个连续空格的情况
2. 需要trim
3. 不是字符串倒序,而是以单词的形式倒序
public class Solution {
public String reverseWords(String s) {
boolean postFlag = false;
boolean spaceFlag = false;
StringBuilder result = new StringBuilder(200);
StringBuilder sb = new StringBuilder(10);
for (int i=s.length()-1; i>=0; i--){
char c = s.charAt(i);
if(!postFlag && c==32){
continue;
}
if(!postFlag){
postFlag = true;
}
if(c == 32 && !spaceFlag){
spaceFlag = true;
result.append(sb.reverse().toString());
sb = new StringBuilder(10);
result.append(c);
}else if(c==32 && spaceFlag){
continue;
}else {
spaceFlag = false;
sb.append(c);
}
}
if(sb.length()!=0){
result.append(sb.reverse());
}
for (int i=result.length()-1; i>=0; i--){
char c = result.charAt(i);
if(c==32){
result.deleteCharAt(i);
}else {
break;
}
}
return result.toString();
}
}