翻转单词顺序列

翻转单词顺序列

http://www.nowcoder.com/questionTerminal/3194a4f4cf814f63919d0790578d51f3

时间复杂度: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();
    }
}
全部评论
开辟的空间是O(1)?
点赞 回复 分享
发布于 2020-07-13 09:34
与标记空格这个变量blankNum,是不是可以去掉
点赞 回复 分享
发布于 2020-03-06 08:44

相关推荐

不愿透露姓名的神秘牛友
07-25 17:26
点赞 评论 收藏
分享
线性袋鼠:别听牛客上一帮伪人在那说,小厂不能去,必须去大厂,听他们放屁吧。学院本+一些一本最终的归宿就是中小厂,大厂那么好进吗
我的实习日记
点赞 评论 收藏
分享
评论
3
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务