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

安徽省同济建设集团网站做视频添加字幕的网站

安徽省同济建设集团网站,做视频添加字幕的网站,泰安招工招聘信息,jq效果较多的网站文章目录 删除字符串中的所有相邻重复项比较含退格的字符串基本计算机II字符串解码验证栈序列 栈是一种先进后出的数据结构#xff0c;其操作主要有 进栈、压栈#xff08;Push#xff09; 出栈#xff08;Pop#xff09; 常见的使用栈的算法题 中缀转后缀逆波兰表达式求… 文章目录 删除字符串中的所有相邻重复项比较含退格的字符串基本计算机II字符串解码验证栈序列 栈是一种先进后出的数据结构其操作主要有 进栈、压栈Push 出栈Pop 常见的使用栈的算法题 中缀转后缀逆波兰表达式求值括号匹配深度优先搜索 删除字符串中的所有相邻重复项 题目删除字符串中的所有相邻重复项 思路 用栈的思想来模拟遍历字符串如果栈为空或栈顶元素和进栈元素不相同字符进栈否则即栈顶元素和进栈元素相同则pop栈顶元素但是最后留在栈中的字符就是需要返回的并且是逆序的所以我们直接用原来的字符串模拟栈 C代码 class Solution { public:string removeDuplicates(string s) {string res;for(auto ch : s){if(res.size() res.back() ch) res.pop_back();else res.push_back(ch);}return res;} };比较含退格的字符串 题目比较含退格的字符串 思路 利用栈的思想封装一个check函数来返回退格后的字符串chech函数的实现遍历字符串如果不是#直接加到res上否则如果res中没有元素但是遇到了#直接跳过不用pop_back() C代码 class Solution { public:string check(string s){string res;for(auto ch : s){if(ch ! #) res ch; // 如果不是‘#’。直接加到res上else{if(res.size()) // 如果res中没有元素但是遇到了‘#’应该直接跳过不用pop_back()res.pop_back();} }return res;}bool backspaceCompare(string s, string t) {return check(s) check(t); // 检查退格后的字符串是否相等} };基本计算机II 题目基本计算器 II 思路 由于运算符只有(, -, *, /)这四种我们使用一个数组来模拟栈插入每一个数使用一个前缀字符来进行运算符的标记初始设为加当操作符op遇到加减都更新遇到乘除则与栈顶元素计算遍历结束后我们将栈中元素相加 C代码 class Solution { public:// 1. 遇到操作符更新操作符op// 2. 遇到数字// 1. 先将数字提取到tmp中// 2. 根据op分类讨论// ①op , tmp入栈// ②op -, -tmp入栈// ③op *, 直接和栈顶元素相×// ④op /, 直接和栈顶元素相÷int calculate(string s) {char op ;int i 0, n s.size();vectorint v; // 模拟栈while(i n){if(s[i] ) i;else if(0 s[i] s[i] 9){// 数字提取到tmp中int tmp 0;while(i n 0 s[i] s[i] 9)tmp 10 * tmp (s[i] - 0);if(op ) v.push_back(tmp);else if(op -) v.push_back(-tmp);else if(op *) v.back() * tmp;else v.back() / tmp;}else {op s[i];i;}}int res 0;for(auto x : v){res x;}return res;} };字符串解码 题目字符串解码 思路 定义两个栈一个字符串、一个int变量遇到数字放入数字栈遇到[把后面的字符串提取、放入字符串栈遇到]取出两栈顶元素解析放入字符串栈的栈顶元素后面遇到字符 提取字符放入字符串栈的栈顶元素后面 C代码 class Solution { public:// 两个栈一个字符串、一个int变量// 1. 遇到数字放入数字栈// 2. 遇到[把后面的字符串提取、放入字符串栈// 3. 遇到]取出两栈顶元素解析放入字符串栈的栈顶元素后面// 4. 遇到字符 提取字符放入字符串栈的栈顶元素后面string decodeString(string s) {stackstring ss;stackint si;int i 0, n s.size();ss.push();while(i n){if(s[i] 0 s[i] 9) {int t 0;while (0 s[i] s[i] 9)t 10 * t (s[i] - 0);si.push(t);}else if(s[i] [) {i;string t ;while(s[i] a s[i] z)t s[i];ss.push(t);}else if(s[i] ]){string t ss.top();ss.pop();int j si.top();si.pop();while(j--){ss.top() t;}i; // 跳过右括号}else{string t ;while(i n s[i] a s[i] z)t s[i];ss.top() t;}}return ss.top();} };验证栈序列 题目验证栈序列 思路 用一个栈来模拟这个过程最后栈为空则说明相匹配否则说明不匹配 用i来遍历pop数组确定要出栈的元素判断栈顶元素是否等于要出栈的元素如果相等则出栈并i到下一个要出栈的元素上 class Solution { public:bool validateStackSequences(vectorint pushed, vectorint popped) {stackint s;int n popped.size();int i 0; // 标志位确定要出栈的元素for(auto ch : pushed){s.push(ch);// 判断栈顶元素是否等于要出栈的元素如果相等则出栈并将标志位挪到下一个要出栈的元素上while(s.size() s.top() popped[i]) {s.pop();i;}}return s.empty(); } };
http://www.dnsts.com.cn/news/270009.html

相关文章:

  • 国家城乡建设官方网站几十万做网站平台
  • 亚成成品网站源码外贸专业网站
  • 安徽建设网网站建站与优化
  • 介绍一个做美食的网站房产网站系统源码
  • 网站建设需要什么流程免费软件不用充值
  • 比较好的做网站黄石市seo关键词优化怎么做
  • 企业网站管理系统标签手册网站建设与管理专业自我评价
  • 许昌网站开发公司wordpress的主题下载地址
  • 商场网站方案永久免费自助建网站
  • 宁波网站建设服务公司电hua局域网的电脑怎么做网站服务器
  • 建设网站的目标客户群企业网站买卖建设流程
  • 网站开发合同范本大全中国机械设备制造网
  • 专门做特卖的网站是什么我要用新浪云做网站
  • 手机网站如何站点管理上海最专业的网站设
  • 国内做交互网站百度收录量
  • 搭建门户网站一个网站内容怎么规划
  • asp.net 网站安全网络服务公司简介
  • 电商网站设计制作wordpress 阿里百秀 主题
  • asp网站如何运行做网站都需要买什么软件
  • 品牌设计作品台州路桥区企业全网seo优化
  • wordpress 网站排名优化如何给别人做网站赚钱
  • 深圳建站公司模板怎么在wordpress编辑进入二级页面
  • 查看网站的注册时间建筑工程网络图图片
  • 江门做网站公司开网络公司网站流量统计查询
  • 网站建设网站需要什么软件有哪些网络营销外包合同模板
  • 怎样做的网站内网外网都能用简单商城源码
  • 如何做镜框 网站宜春网站推广优化
  • 做网站哪家公司游戏点卡平台网站开发
  • 做国外网站赚钱网站 硬件方案
  • 免费合同模板网站域名估价