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

开装潢公司做网站品牌营销推广方案

开装潢公司做网站,品牌营销推广方案,网站的网站地图怎么做,品牌整合营销方案算法相关知识点可以通过点击以下链接进行学习一起加油!双指针滑动窗口二分查找前缀和位运算模拟链表哈希表字符串模拟 在算法学习中,栈是最基础也是最容易上手的数据结构之一。然而,当它被用于模拟复杂操作流程时,却常常成为区分“…

在这里插入图片描述

算法相关知识点可以通过点击以下链接进行学习一起加油!
双指针滑动窗口二分查找前缀和位运算
模拟链表哈希表字符串模拟

在算法学习中,栈是最基础也是最容易上手的数据结构之一。然而,当它被用于模拟复杂操作流程时,却常常成为区分“写得出”和“写得好”之间的分水岭。
本文将精选常见的栈模拟题,系统分析它们的思维模式与代码实现,带你掌握这类题目的出题套路与解题技巧。

请添加图片描述

Alt

🌈个人主页:是店小二呀
🌈C/C++专栏:C语言\ C++
🌈初/高阶数据结构专栏: 初阶数据结构\ 高阶数据结构
🌈Linux专栏: Linux
🌈算法专栏:算法
🌈Mysql专栏:Mysql

🌈你可知:无人扶我青云志 我自踏雪至山巅 请添加图片描述

文章目录

    • 1047. 删除字符串中的所有相邻重复项
    • 844. 比较含退格的字符串
    • 227. 基本计算器 II
    • 394. 字符串解码
    • 946. 验证栈序列

1047. 删除字符串中的所有相邻重复项

题目】:1047. 删除字符串中的所有相邻重复项

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

算法思路

本题与我们玩过的「开心消消乐」游戏非常相似。仔细观察消除过程,我们可以发现,本题与「括号匹配」问题类似。当前元素是否被消除,需要依赖上一个元素的信息,因此可以使用「栈」来存储信息。

但是,使用 stack 来保存信息的话,最终还需要将结果从栈中取出。不如直接使用「数组模拟栈」结构:通过在数组尾部进行「尾插尾删」操作,模拟栈的「进栈」和「出栈」。最终,数组中剩下的内容就是消除后的结果。

代码实现

class Solution {
public:string removeDuplicates(string s) {string ret;for(auto ch : s){if(ret.size() == 0 || ret.back() != ch) ret += ch;//入栈else ret.pop_back(); //出栈}return ret;}
};

844. 比较含退格的字符串

题目】:844. 比较含退格的字符串

在这里插入图片描述

算法思路

该问题可以分为两个部分:判断两个字符串在删除‘退格字符’后的结果是否相等,以及如何获取去除‘退格字符’后的字符串。由于涉及到不断的插入和删除操作,使用栈的结构最为合适。可以设计一个函数来处理‘退格字符’的逻辑,函数内部通过栈操作来实现。需要注意的是,当栈为空时,不能执行pop操作。

代码实现

class Solution {
public:bool backspaceCompare(string s, string t) {return check(s) == check(t);}string check(string& str){string ret;for(auto ch : str){if(ch != '#'){ret += ch;}else{if(ret.size()) ret.pop_back();}}return ret;}
};

227. 基本计算器 II

题目】:227. 基本计算器 II

在这里插入图片描述

算法思路

解法:利用栈模拟计算过程

对于表达式求值问题,通常使用栈来模拟计算过程,并结合分情况讨论。在这里,可以通过一个栈来优化原本需要使用双栈的做法。为简化累加过程,我们可以为每个数字添加符号,并在遍历过程中处理*/操作。

输入字符串中可能包含空格,需要特别处理。根据表达式的形式数字1 操作符 数字2,当遇到数字2时,可以决定是将其入栈,还是与栈顶元素进行乘除运算。类似地,数字1实际上是之前的数字2,所有这些操作通过一套统一的逻辑来完成。

对于多位数字,可以使用如下代码来处理:
while (i < n && s[i] >= '0' && s[i] <= '9') tmp = tmp * 10 + (s[i++] - '0');

代码实现

class Solution {
public:int calculate(string s) {vector<int> stack;char op = '+';int i = 0, n = s.size();while(i < n){//处理为空的情况if(s[i] == ' ') i++;//遇到数字else 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');//单或多个字符if(op == '+') stack.push_back(tmp);else if(op == '-') stack.push_back(-tmp);else if(op == '*') stack.back() *= tmp;else stack.back() /= tmp;}//遇到字符else{op = s[i++];}}//处理剩下求和int sum = 0;for(auto x : stack) sum += x;return sum;}
};

394. 字符串解码

题目】:394. 字符串解码

在这里插入图片描述

算法思路

解法:用栈模拟

这类问题通常可以通过模拟过程来解决,尤其是遇到类似表达式求值的问题时,通常需要借助栈,并结合分情况讨论。

在这里插入图片描述

代码实现

class Solution {
public:string decodeString(string s) {stack<string> st;stack<int> nums;st.push("");int i = 0, n = s.size();while(i < n){//遇到数字if(s[i] >= '0' && s[i] <= '9'){int tmp = 0;while(s[i] >= '0' && s[i] <= '9') tmp = tmp * 10 + (s[i++] - '0');nums.push(tmp);}else if(s[i] == '['){i++;string tmp = "" ;while(s[i] >= 'a' && s[i] <= 'z') tmp += s[i++];st.push(tmp);}else if(s[i] == ']'){string tmp = st.top();st.pop();//解析int k = nums.top();nums.pop();while(k--){st.top() += tmp; }i++;}else//遇到单独情况,直接放在字符串栈顶字符串后面{string tmp;while(i < n && s[i] >= 'a' && s[i] <= 'z')  tmp+= s[i++];st.top() += tmp;}}return st.top();}
};

946. 验证栈序列

题目】:946. 验证栈序列

在这里插入图片描述

算法思路

通过栈模拟进出栈的过程。不断将元素进栈,并在每次进栈时判断是否需要出栈。若所有元素处理完后栈中仍有元素,则说明序列无效;否则,序列是合法的。

在这里插入图片描述

代码实现

class Solution {
public:bool validateStackSequences(vector<int>& pushed, vector<int>& popped) {vector<int> stack;int j = 0;for(int i = 0; i <pushed.size(); i++){stack.push_back(pushed[i]);while(j < popped.size() && !stack.empty() && popped[j] == stack.back()){stack.pop_back();j++;}}return stack.empty();}
};

在这里插入图片描述
快和小二一起踏上精彩的算法之旅!关注我,我们将一起破解算法奥秘,探索更多实用且有趣的知识,开启属于你的编程冒险!

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

相关文章:

  • 网站建设要学哪些软件有哪些优化视频
  • 瑞昌市建设局网站b2b电商平台有哪些
  • 柳市做网站的公司北京网站优化策略
  • 商业网站制作教程免费网站在线客服软件
  • 产品包装设计网站找谁做廊坊百度关键词优化
  • 做网站公司共有几处密码千万不要学网络营销
  • 网站上的销售怎么做的互联网产品运营推广方案
  • 诚信宁津建设网站谷歌seo优化推广
  • 企业微信网站怎么做百度小说风云榜2022
  • 网站改版后新版前台如何跟旧版后台链接上海网络营销seo
  • 小企网站建设解决方案免费seo优化
  • 旅游推荐网站怎么做企业网站有哪些类型
  • 嘉兴型网站系统总部推广渠道有哪些平台
  • 网站建设专题会议seo推广效果
  • 网站建设的什么是网站建设的第一阶段品牌广告视频
  • 网站优化连云港哪家强?seo推广软件排名
  • 顺德门户网站建设公司如何查看一个网站的访问量
  • 企业网站明细费用重庆网站推广专家
  • 企业网站设计有名 乐云seo谷歌搜索引擎大全
  • 网站 建设需求电话营销
  • 复制网站源码新冠疫情最新消息
  • 网站架构演变过程搜索引擎优化工具
  • wordpress 获取所有标签海外seo
  • 网站开发需求分析参考文献百度竞价怎么操作
  • flask做大型网站开发百度游戏风云榜
  • com域名需要备案吗宁德seo公司
  • 九龙坡区网站建设网站推广工作
  • 承德网站制作多少钱培训班有哪些课程
  • 昌江县住房和城乡建设局网站什么是竞价
  • 网站js时间代码源码网