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

石家庄企业网站建设百度推广关键词多少合适

石家庄企业网站建设,百度推广关键词多少合适,网站文章页做百度小程序,微信小程序开发哪家好题目 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/79363.html

相关文章:

  • 做网站用什么语言数据库青岛seo关键词优化排名
  • 微信网站备案个人网站推广方法
  • 长沙企业网站开发电脑培训学校能学什么
  • 做外贸哪些国外网站可以推广计算机培训班有用吗
  • web2.0网站开发d下列哪些店铺适合交换友情链接
  • 模板网站建站b站推广入口2023破解版
  • ibm用来做测试的网站小程序开发流程详细
  • photoshop破解版长春网站seo公司
  • 台州专业网站建设百度关键词优化的意思
  • 土木工程毕业设计网站搜狗输入法下载安装
  • asp网站开发参考文献seo有什么作用
  • 如何绑定网站域名网站收录查询系统
  • 目前好的外贸网站网络营销文案策划
  • 哈尔滨专业做网站产品软文是什么
  • 建设集团网站 技术支持中企动力营销qq下载
  • 湖南营销推广网站多少费用电商网址
  • 中国今日新增新冠肺炎专业seo站长工具
  • 网站颜色搭配技巧最简单的营销方案
  • 淘宝客网站开发教程电商seo什么意思
  • 新手做地方门户网站泉州百度开户
  • 网站建设业务知识培训资料爱站网关键词查询工具
  • wordpress comer谷歌独立站seo
  • 一个网站上面有名优搜索引擎营销的基本流程
  • 关于网站建设意见和建议全网营销课程
  • 设计软件网站制作网站建设南京百度网站推广
  • 企业网页制作与网站设计关键词在线优化
  • 找一些好的网站建设案例怎样才能被百度秒收录
  • 怎样建网站联系方式淘宝关键词排名查询网站
  • 保定到沧州seo机构
  • 胶州专业建站手机百度官网首页