时间复杂度:O(n)
空间复杂度为:O(1)
笔记:String没有reverse()用法,StringBuffer.reverse()返回的是String
import java.lang.StringBuffer;
public class Solution {
public String ReverseSentence(String str) {
if(str.length()<=0){
return "";
}
//反转整个句子
StringBuffer st1=new StringBuffer(str);
st1.reverse();
//存放结果
StringBuffer result=new StringBuffer();
int j=0;
//标记空格数
int blankNum=0;
for(int i=0;i<st1.length();i++){
//1、当有空格,且没有到达最后一个单词时
if(st1.charAt(i)==' '&&(i!=st1.length()-1)){
blankNum++;
StringBuffer st2=new StringBuffer(st1.substring(j,i));
result.append(st2.reverse().toString()).append(" ");
j=i+1;
}
//2、当有空格,且到达最后一个单词时
if(blankNum!=0&&i==(st1.length()-1)){
StringBuffer st3=new StringBuffer(st1.substring(j,i+1));
result.append(st3.reverse());
}
}
//空格数为0时,直接返回原字符串
if(blankNum==0){
return str;
}
return result.toString();
}
}