码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode 394 解码

时间:2020-05-28 20:08:27      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:move   als   src   注意   dig   ast   代码   show   last   

这种题算是常规题了,思路也比较固定:利用栈,扫一遍就可以了。直接上代码。

技术图片
ublic static String decodeString(String s) {
        char[] sC = s.toCharArray();
        int len = s.length();
        int indx = 0;
        char nowC;
        StringBuffer digit = new StringBuffer();
        LinkedList<String> stackS= new LinkedList<>();
        while (indx<len){
            nowC = sC[indx];
            digit.setLength(0);
            while (nowC>=‘0‘&&nowC<=‘9‘){
                digit.append(nowC);
                nowC=sC[++indx];
            }
            if(digit.length()>0) stackS.addLast(digit.toString());
            if(nowC!=‘]‘){
                stackS.addLast(String.valueOf(nowC));
                indx++;

            }else{
                indx++;
                String sub = new String();
                while (!stackS.peekLast().equals("[")){
                    sub = stackS.removeLast()+sub;
                }
                stackS.removeLast();
                //sub = sub.reverse();
                StringBuffer tmp = new StringBuffer(sub.toString());
                int time = Integer.parseInt(stackS.removeLast());

                for(int i=1;i<time;i++){
                    tmp.append(sub.toString());
                }
                stackS.addLast(tmp.toString());
            }

        }
        StringBuffer ans = new StringBuffer();
        for(String tmp : stackS){
            ans.append(tmp);
        }
        return ans.toString();
    }
View Code

这里要注意的是,java没有栈这种结构(好像有,但是不常用),我们用Linkedlist来模拟栈的特点。

leetcode 394 解码

标签:move   als   src   注意   dig   ast   代码   show   last   

原文地址:https://www.cnblogs.com/superxuezhazha/p/12983243.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!