题解 | #翻转单词序列#

翻转单词序列

https://www.nowcoder.com/practice/3194a4f4cf814f63919d0790578d51f3

方法一:借助栈的先入后出反转字符串(栈+StringBuilder+String[])

public String ReverseSentence(String str) {
        //if(str==null)//这种字符串判空方式会报错
        //if(str.isEmpty())//字符串判空0
        //if(str.trim().equals(""))//字符串判空1
        if(str.length()<=0)return str;//字符串判空2
        String[] sArr = str.trim().split(" ");//分割字符串用数组接收
        Deque<String> stk = new LinkedList<>();//用Deque代替Stack
        for(int i =0;i<sArr.length;i++){
            stk.push(sArr[i]);
        }
        StringBuilder sb = new StringBuilder();
        while(!stk.isEmpty()){//栈的判空
            String s = stk.pop();
            sb.append(s+" ");
        }
        return sb.toString().trim();
    }

方法二:无需栈,字符串数组遍历时直接倒序加入StringBuilder

 public String ReverseSentence(String str) {
        //if(str==null)//这种字符串判空方式会报错
        //if(str.isEmpty())//字符串判空0
        //if(str.trim().equals(""))//字符串判空1
        if(str.length()<=0)return str;//字符串判空2
        String[] sArr = str.trim().split(" ");
        StringBuilder sb = new StringBuilder();
        for(int i =0;i<sArr.length;i++){
            sb.append(sArr[sArr.length-1-i]);//无需栈,直接倒序加入StringBuilder
            sb.append(" ");
        }
        return sb.toString().trim();
    }
全部评论

相关推荐

02-16 01:39
南昌大学 Java
重剑Ds:感觉不太可能 后端都减飞了 根本不缺人
点赞 评论 收藏
分享
钱嘛数字而已:辅导员肯定不能同意,不然你出事了,他要承担责任。但是,脚和脑子都长在你自己身上,使用它还需要向辅导员报告么? 辅导员必须按流程拒绝你,然后你拿出成年人的态度,做自己的选择。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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