当前位置: 首页 > news >正文

力扣 -- 394. 字符串解码

解题方法:

参考代码:

class Solution{
public:string decodeString(string s){stack<string> sst;stack<int> dst;//防止字符串栈为空的时候再追加字符串到栈顶元素sst.push("");int n = s.size();int i = 0;while(i<n)//最好不要用for循环,容易出问题{if (s[i] >= '0' && s[i] <= '9'){int tmp = 0;while (i < n && s[i] >= '0' && s[i] <= '9'){tmp = tmp * 10 + (s[i] - '0');i++;}dst.push(tmp);}else if (s[i] == '['){//记得++从下一个位置开始找字母字符串,否则会死循环i++;string str;while (i < n && s[i] >= 'a' && s[i] <= 'z'){str += s[i];i++;}sst.push(str);}else if (s[i] == ']'){int k = dst.top();dst.pop();string tmp = sst.top();sst.pop();for (size_t j = 0; j < k; j++){sst.top() += tmp;}//记得要++,否则会死循环i++;}else if (s[i] >= 'a' && s[i] <= 'z'){while (i < n && s[i] >= 'a' && s[i] <= 'z'){sst.top() += s[i];i++;}}}return sst.top();}
};

http://www.lryc.cn/news/170404.html

相关文章:

  • 面试官:什么是虚拟DOM?如何实现一个虚拟DOM?说说你的思路
  • Ubuntu安装中文拼音输入法
  • 高端知识竞赛中用到的软件和硬件有哪些
  • Vue 3.3 发布
  • 算法|图论 3
  • 【数据结构】二叉树的层序遍历(四)
  • macOS文件差异比较最佳工具:Beyond Compare 4
  • Windows+Pycharm 如何创建虚拟环境
  • vant 按需导入 vue2
  • Java手写分治算法和分治算法应用拓展案例
  • 学习 CodeWhisperer 的一些总结
  • JavaScript 中的 `this` 指向问题与其在加密中的应用
  • 深入理解算法的时间复杂度
  • 2023年度教育部人文社会科学研究一般项目评审结果,已公布!
  • 十一、MySql的事务(上)
  • 时间序列分析1--生成和导出时间序列数据
  • HarmonyOS应用开发—资源分类与访问
  • C++中的转换构造函数
  • JSP ssm 特殊人群防走失系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计
  • 怎么实现一个登录时需要输入验证码的功能
  • 在android工程中新建Android模块报错
  • 电脑桌面的复选框如何取消
  • 【Unity每日一记】资源加载相关和检测相关
  • 【数据结构】长篇详解堆,堆的向上/向下调整算法,堆排序及TopK问题
  • DAQ高频量化平台:引领Ai高频量化交易模式变革
  • vue3 element plus获取el-cascader级联选择器选中的当前结点的label值 附vue2获取当前label
  • Spring Boot常见面试题
  • 分块矩阵求逆
  • Python 文件写入操作
  • 【Spring Boot系列】- Spring Boot侦听器Listener