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

石家庄企业网站建设c++线上培训机构哪个好

石家庄企业网站建设,c++线上培训机构哪个好,企业只有建立自己的网站平台,天津做网站多少钱题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…

题目

394. 字符串解码 - 力扣(LeetCode)

思路

使用两个栈:一个存储重复次数,一个存储字符串

遍历输入字符串:

  • 数字处理:遇到数字时,累积计算重复次数
  • 左括号处理:保存当前状态(入栈),开始处理新的嵌套部分
  • 字母处理:直接添加到当前字符串,不涉及栈操作
  • 右括号处理:完成当前嵌套部分,应用重复规则,恢复之前的状态(出栈)

最终返回处理后的字符串

该算法能够处理嵌套的编码,例如"2[a2[bc]]"这样的情况。时间复杂度为O(n),其中n是输入字符串的长度。

过程

  • countStack: []
  • strStack: []
  • currentStr: ""
  • count: 0

处理字符 '3'

字符: '3'
操作: 数字 → 更新count = 3
countStack: []
strStack: []
currentStr: ""
count: 3

处理字符 '['

字符: '['
操作: 左括号 → 保存当前状态,重置当前变量
countStack: [3]  ← 入栈
strStack: [""]   ← 入栈
currentStr: ""   ← 重置
count: 0         ← 重置

 处理字符 'a'

字符: 'a'
操作: 字母 → 添加到currentStr
countStack: [3]
strStack: [""]
currentStr: "a"  ← 添加'a'
count: 0

处理字符 ']'

字符: ']'
操作: 右括号 → 出栈并应用重复
countStack: []   ← 弹出3
strStack: []     ← 弹出""
重复计算: "" + "a"*3 = "aaa"
currentStr: "aaa"  ← 更新
count: 0

 处理字符 '2'

字符: '2'
操作: 数字 → 更新count = 2
countStack: []
strStack: []
currentStr: "aaa"
count: 2         ← 更新

  处理字符 '['

字符: '['
操作: 左括号 → 保存当前状态,重置当前变量
countStack: [2]      ← 入栈
strStack: ["aaa"]    ← 入栈
currentStr: ""       ← 重置
count: 0             ← 重置

 处理字符 'b'

字符: 'b'
操作: 字母 → 添加到currentStr
countStack: [2]
strStack: ["aaa"]
currentStr: "b"      ← 添加'b'
count: 0

 处理字符 'c'

字符: 'c'
操作: 字母 → 添加到currentStr
countStack: [2]
strStack: ["aaa"]
currentStr: "bc"     ← 添加'c'
count: 0

 处理字符 ']'

字符: ']'
操作: 右括号 → 出栈并应用重复
countStack: []       ← 弹出2
strStack: []         ← 弹出"aaa"
重复计算: "aaa" + "bc"*2 = "aaa" + "bcbc" = "aaabcbc"
currentStr: "aaabcbc"  ← 更新
count: 0

  处理结束

最终结果: "aaabcbc"

一些难点解读

正确写法

class Solution {
public:string decodeString(string s) {stack<int> countStack;stack<string> strStack; string currentStr = "";int count = 0;for(int i = 0; i<s.size();i++){if(isdigit(s[i])){count = count * 10 + (s[i] - '0');}else if(s[i] == '['){countStack.push(count);strStack.push(currentStr);count = 0;currentStr = "";}else if(s[i] == ']'){int repeatTimes = countStack.top();countStack.pop();string decodedStr = strStack.top();strStack.pop();for(int i = 0; i< repeatTimes; i++){decodedStr += currentStr;}currentStr = decodedStr;}else{currentStr += s[i];}}return currentStr;}
};

http://www.dtcms.com/wzjs/495474.html

相关文章:

  • 天津企业建网站建站公司最新报价
  • 网站在线答题怎么做太原网站制作优化seo
  • 交互做的比较好的网站seo臻系统
  • xml做网站官网seo优化找哪家做
  • 炫酷网站设计山东大学经济研究院
  • 如何建立一个外贸网站网站流量统计分析工具
  • 需要做网站建设的公司可以免费发布广告的平台有哪些
  • 单位网站建设框架中国站长之家官网
  • 企业网站可概括为营销必备十大软件
  • 建网站那个网最好优化大师免费下载
  • 国内大的网站建设公司四川seo推广
  • 网站建设 内容缺乏百度下载并安装
  • 流感疫情最新消息seo研究协会网是干什么的
  • 大连哪个公司做网站开发的优帮云首页推荐
  • wordpress显示标题和seo标题成都网站排名 生客seo
  • 租房子做民宿在哪个网站快推广app下载
  • 网站优化怎么看2020十大网络热词
  • wordpress样式冲突何鹏seo
  • 上海营销型网站建设哪家好长沙整合推广
  • dw做网站首页怎么做网络营销的主要方式
  • 可以安装两个wordpress成都seo优化推广
  • 网站建设类岗位重庆seo网络推广优化
  • 如何创做网站原创软文
  • 天津网站营销广州网站建设推广专家
  • 帝国cms 做的完整的网站有没有百合seo培训
  • 目录浏览的网站win7优化教程
  • 160 国际英文网站优化seo是什么
  • 如何做代刷网站长企业营销策划书范文
  • 广东注册公司代办搜索引擎优化师工资
  • 南沙哪有做网站的营销型网站建设公司价格