leetcode 394 字符串解码.
Posted 小师叔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 394 字符串解码.相关的知识,希望对你有一定的参考价值。
简介
递归很清晰~.
不过写不出来.
code
class Solution {
String src;
int ptr;
public String decodeString(String s) {
src = s;
ptr = 0;
return getString();
}
public String getString() {
if (ptr == src.length() || src.charAt(ptr) == \']\') {
// String -> EPS
return "";
}
char cur = src.charAt(ptr);
int repTime = 1;
String ret = "";
if (Character.isDigit(cur)) {
// String -> Digits [ String ] String
// 解析 Digits
repTime = getDigits();
// 过滤左括号
++ptr;
// 解析 String
String str = getString();
// 过滤右括号
++ptr;
// 构造字符串
while (repTime-- > 0) {
ret += str;
}
} else if (Character.isLetter(cur)) {
// String -> Char String
// 解析 Char
ret = String.valueOf(src.charAt(ptr++)); //将一个字符转为string
}
return ret + getString();
}
public int getDigits() {
int ret = 0;
while (ptr < src.length() && Character.isDigit(src.charAt(ptr))) {
ret = ret * 10 + src.charAt(ptr++) - \'0\';
}
return ret;
}
}
以上是关于leetcode 394 字符串解码.的主要内容,如果未能解决你的问题,请参考以下文章