LeetCode—394. Decode String

来源:互联网 发布:东非解放军 知乎 编辑:程序博客网 时间:2024/03/29 04:29

Decode String思路:逐个char解析即可


GitHub地址:https://github.com/corpsepiges/leetcode

点此进入如果可以的话,请点一下star,谢谢。



public class Solution {    public String decodeString(String s) {        if (s.length() == 0) {            return "";        }        StringBuffer sb = new StringBuffer();        char[] cs = s.toCharArray();        int startNum = -1;        int startString = -1;        int bracketNums = 0;        for (int i = 0; i < cs.length; i++) {            if (cs[i] >= '0' && cs[i] <= '9') {                if (startNum == -1) {                    startNum = i;                }            } else if (cs[i] == '[') {                if (startString == -1) {                    startString = i;                }                bracketNums++;            } else if (cs[i] == ']') {                bracketNums--;                if (bracketNums == 0) {                    int times = Integer.valueOf(s.substring(startNum, startString));                    String son = decodeString(s.substring(startString + 1, i));                    for (int j = 0; j < times; j++) {                        sb.append(son);                    }                    startString = -1;                    startNum = -1;                }            } else if (bracketNums == 0) {                sb.append(String.valueOf(cs[i]));            }        }        return sb.toString();    }}


0 0
原创粉丝点击