LeetCode-Decode String
2024-09-02 21:53:51
Given an encoded string, return it's decoded string.
The encoding rule is: k[encoded_string]
, where the encoded_string inside the square brackets is being repeated exactly k times. Note that k is guaranteed to be a positive integer.
You may assume that the input string is always valid; No extra white spaces, square brackets are well-formed, etc.
Furthermore, you may assume that the original data does not contain any digits and that digits are only for those repeat numbers, k. For example, there won't be input like 3a
or 2[4]
.
Examples:
s = "3[a]2[bc]", return "aaabcbc".
s = "3[a2[c]]", return "accaccacc".
s = "2[abc]3[cd]ef", return "abcabccdcdcdef".
Solution:
public class Solution {
public String decodeString(String s) {
StringBuilder builder = new StringBuilder();
decodeStringRecur(s.toCharArray(),builder,0);
return builder.toString();
} public int decodeStringRecur(char[] sArr, StringBuilder builder, int start){
if (start>=sArr.length){
return start;
} int p1 = start;
while (p1<sArr.length && sArr[p1]!=']'){
if (sArr[p1]<'0' || sArr[p1]>'9'){
builder.append(sArr[p1++]);
} else {
// get the following encoded string.
// get the number first.
int val = 0;
while (p1<sArr.length && sArr[p1]!='['){
val = val*10 + (int)(sArr[p1++]-'0');
} // get the string.
StringBuilder subBuilder = new StringBuilder();
p1 = decodeStringRecur(sArr,subBuilder,p1+1); // add into decoded string.
for (int i=0;i<val;i++){
builder.append(subBuilder);
}
}
} return (p1<sArr.length) ? p1+1 : p1;
}
}
最新文章
- 一起学微软Power BI系列-使用技巧(5)自定义PowerBI时间日期表
- 关于.NET参数传递方式的思考
- 8.2 使用Fluent API进行实体映射【Code-First系列】
- About MTU,TCP-MSS (转)
- Asp.Net使用代理IP远程获取数据
- javascript异步延时载入及推断是否已载入js/css文件
- UINavigationController 与 UITabBarController
- 【算法Everyday】第三日 KMP算法
- linux配置备忘
- 初识PHP遗留下来的问题?
- 【BZOJ1030】文本生成器(AC自动机,动态规划)
- 利用dladdr来获得so自身的路径
- 基数计数——HyperLogLog
- mongodb数据库安装及常见操作
- android开发 静态碎片布局实现
- flask的session用法
- 自己写的 读写 ini 配置文件类
- BZOJ3270:博物馆(高斯消元)
- electron 的中文文档的地址 以及 窗口改变的步骤
- [转]How to Leak a Context: Handlers &; Inner Classes