美文网首页
394. 字符串解码

394. 字符串解码

作者: justonemoretry | 来源:发表于2021-09-24 23:28 被阅读0次
image.png

解法

class Solution {
    int i = 0;
    public String decodeString(String s) {
        LinkedList<String> res = new LinkedList<>();
        while (i < s.length()) {
            char c = s.charAt(i);
            if (Character.isDigit(c)) {
                String digits = getDigits(s);
                res.addLast(digits);
            } else if (c == '[' || Character.isLetter(c)) {
                res.addLast(String.valueOf(c));
                i++;
            } else {
                // 不是上面的情况,就是遇到了右括号]
                i++;
                LinkedList<String> sub = new LinkedList<>();
                while (!"[".equals(res.peekLast())) {
                    sub.addLast(res.removeLast());
                }
                Collections.reverse(sub);
                String o = getString(sub);
                res.removeLast();
                // 对应的前缀数字
                int num = Integer.parseInt(res.removeLast());
                StringBuilder seg = new StringBuilder();
                for (int i = 0; i < num; i++) {
                    seg.append(o);
                }
                res.addLast(seg.toString());
            }
        }
        return getString(res); 
    }

    public String getDigits(String s) {
        StringBuilder sb = new StringBuilder();
        while (Character.isDigit(s.charAt(i))) {
            sb.append(s.charAt(i++));
        }
        return sb.toString();
    }

    public String getString(LinkedList<String> stringList) {
        StringBuilder sb = new StringBuilder();
        for (String s : stringList) {
            sb.append(s);
        }
        return sb.toString();
    }
}

相关文章

  • 打卡-字符串解码

    394. 字符串解码

  • 394. 字符串解码

    394.字符串解码给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string...

  • 394. 字符串解码

    394. 字符串解码 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_stri...

  • LeetCode 394. 字符串解码 | Python

    394. 字符串解码 题目来源:力扣(LeetCode)https://leetcode-cn.com/probl...

  • 394.字符串解码

    ​394.字符串解码 题目分析 对这个题目的需求进行分析(需求分析来自Leetcode用户名为凛冬[1])我只是稍...

  • 394. 字符串解码

    题目描述 给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示...

  • 394.字符串解码

    执行用时 :1 ms, 在所有Java提交中击败了90.09%的用户 内存消耗 :37.4 MB, 在所有Java...

  • 394. 字符串解码

    给定一个经过编码的字符串,返回它解码后的字符串。 编码规则为: k[encoded_string],表示其中方括号...

  • 394. 字符串解码

    题目链接:https://leetcode-cn.com/problems/decode-string/ 解题思路...

  • 394. 字符串解码

    解法

网友评论

      本文标题:394. 字符串解码

      本文链接:https://www.haomeiwen.com/subject/ncktnltx.html