给定一个经过编码的字符串,返回它解码后的字符串。

编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。

你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。

此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。

示例:

s = “3[a]2[bc]”, 返回 “aaabcbc”.
s = “3[a2[c]]”, 返回 “accaccacc”.
s = “2[abc]3[cd]ef”, 返回 “abcabccdcdcdef”.

思路:

利用栈, 先一直入栈, 碰到 ' ] ' 就开始弹出栈, 缓存起来, 遇到 ' [ ' 时 while循环接收 int 的每一位, 在循环将缓存的倍数入栈. 倒序输出结果, 搞定!

题解:
class Solution {public String decodeString(String s) {Stack<String> stack = new Stack<>();StringBuilder sb = new StringBuilder(); String res = "";for(char c: s.toCharArray()){if(c==']'){while(stack.size()>0 && !stack.peek().equals("[")){sb.append(stack.pop());}stack.pop();int n=0, count=0;while(!stack.empty()&&Character.isDigit(stack.peek().charAt(0))){n+= Integer.parseInt(stack.pop())*Math.pow(10, count++);}for(int i = 0; i < n; i++){stack.push(sb.toString());}sb.delete(0, sb.length());}if(c!=']')stack.push(c+"");}while(stack.size()>0)sb.append(stack.pop());return sb.reverse().toString();}
}

无尽算法之 字符串解码相关推荐

  1. LeetCode-笔记-394. 字符串解码

    LeetCode-笔记-394. 字符串解码 394. 字符串解码 给定一个经过编码的字符串,返回它解码后的字符串. 编码规则为: k[encoded_string],表示其中方括号内部的 encod ...

  2. 《ASCE1885的信息安全》の使用Crypto++的MD5算法对字符串进行哈希

    使用Crypto++的MD5算法对字符串进行哈希,先在VS2010中新建Win32 Console Application,取工程名为:Crypto-MD5.在工程主目录中新建文件夹include,将 ...

  3. C++horspool算法查找字符串是否包含子字符串(附完整源码)

    C++horspool算法查找字符串是否包含子字符串 C++Shorspool算法查找字符串是否包含子字符串完整源码(定义,实现,main函数测试) C++Shorspool算法查找字符串是否包含子字 ...

  4. PHP对Json字符串解码返回NULL的一般解决方案

    php对json字符串解码使用json_decode()函数,第一个参数传字符串,第二个参数若为true,返回array:若为false,返回object.如果返回NULL,说明报错,输出json_l ...

  5. 算法训练 字符串编辑c语言

    算法训练 字符串编辑 时间限制:1.0s 内存限制:512.0MB 问题描述 从键盘输入一个字符串(长度<=40个字符),并以字符 '.' 结束.编辑功能有: 1 D:删除一个字符,命令的方式为 ...

  6. 算法训练 字符串编辑 java

    算法训练 字符串编辑 时间限制:1.0s 内存限制:512.0MB 问题描述 从键盘输入一个字符串(长度<=40个字符),并以字符 '.' 结束.编辑功能有: 1 D:删除一个字符,命令的方式为 ...

  7. 算法训练 字符串的展开

    ** 算法训练 字符串的展开 ** 在初赛普及组的"阅读程序写结果"的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有 类似于"d-h"或者& ...

  8. [PHP]对Json字符串解码返回NULL的一般解决方案

    ---------------------------------------------------------------------------------------------------- ...

  9. leetcode初级算法6.字符串转整数(atoi)

    leetcode初级算法6.字符串转整数(atoi) 仅为个人刷题记录,不提供解题思路 题解与收获 我的解法: public int myAtoi(String s) {//避免魔法值先设spaceS ...

  10. python实现Trie 树+朴素匹配字符串+RK算法匹配字符串+kmp算法匹配字符串

    一.trie树应用: 相应leetcode 常用于搜索提示,如当输入一个网址,可以自动搜索出可能的选择.当没有完全匹配的搜索结果,可以返回前缀最相似的可能. 例如三个单词app, apple, add ...

最新文章

  1. c#调用java开发的webservice_用C#.NET调用Java开发的WebService传递int,double问题
  2. win7 java闪退_win7 sdk manager 闪退
  3. 广播模块加继电器怎么接线_变频器如何与PLC相连接,怎么用PLC控制?
  4. react取消捕获_React学习笔记(三)
  5. machinery入门看这一篇(异步任务队列)
  6. 手机上图片信息怎么拉一个矩形框_华为手机EMUI系统隐藏的10个功能,上手体验后,实用性无敌了...
  7. php opcache 安装,php opcache安装和配置
  8. -Xlint:deprecation
  9. 1019. 数字黑洞 (20)-PAT乙级真题
  10. android layout_margin的值,Android自定义ViewGroup( 支持layout_margin属性)
  11. C++ priority_queue
  12. 登录 Jed_SH ELK 默认端口
  13. 如何使用python游戏开发模块—pygame?
  14. Java实现简单聊天室【含源码】
  15. 苹果XS怎么截屏_iPhoneXR 到底怎么样?真香 还是真烂?
  16. 2020 CUMCM全国大学生数学建模竞赛 A题 Notes
  17. C# 程序创建word文件与表格
  18. Windows XP Professional SP3安装版
  19. 模仿微信声音锁的实现(运用DTW算法)
  20. 石头剪刀布php源码,微信小程序 石头剪刀布实例代码

热门文章

  1. 选择云服务器需要关注哪些参数
  2. Fafa and his Company
  3. $echarts lineStyle color 颜色不起作用
  4. 如何去除饥饿感又不会增肥
  5. C4D同时改变修改多个参数?参数快速归零
  6. 11.12黄金走势高空震荡及今日纸白银美原油全面操作方向
  7. 华胜天成拟3000万购信息安全公司中天安泰
  8. Python实现个性化推荐一
  9. tableau服务器硬件,Power BI License 部署成本分析 ( vs Tableau Server )
  10. 昆仑叶哲华:企业品牌建设需规避的误区