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

代码随想录算法训练营第23期day11 | 20. 有效的括号、1047. 删除字符串中的所有相邻重复项 、150. 逆波兰表达式求值

目录

一、(leetcode 20)有效的括号

二、(leetcode 1047)删除字符串中的所有相邻重复项

用栈存放 

将字符串直接当成栈 

三、(leetcode 150)逆波兰表达式求值


一、(leetcode 20)有效的括号

力扣题目链接

状态:已AC,列好所有情况就容易了

三种情况会出现不匹配的情况

class Solution {
public:bool isValid(string s) {if (s.size() % 2 != 0) return false;stack<char> st;for (int i = 0; i < s.size(); i++) {if (s[i] == '(') st.push(')');else if (s[i] == '{') st.push('}');else if (s[i] == '[') st.push(']');else if(st.empty()||st.top()!=s[i])return false;else st.pop();}return st.empty();}
};

二、(leetcode 1047)删除字符串中的所有相邻重复项

力扣题目链接

状态:已AC

用栈存放 

class Solution {
public:string removeDuplicates(string S) {stack<char> st;for(char t:S){if(st.empty()||t!=st.top()){st.push(t);}else{st.pop();}}string result = "";while (!st.empty()) { // 将栈中元素放到result字符串汇总result += st.top();st.pop();}reverse(result.begin(),result.end());return result;}
};

将字符串直接当成栈 

class Solution {
public:string removeDuplicates(string S) {string result;for(char s : S) {if(result.empty() || result.back() != s) {result.push_back(s);}else {result.pop_back();}}return result;}
};

三、(leetcode 150)逆波兰表达式求值

力扣题目链接

状态:已AC

思路:遇到数字则入栈;遇到运算符则取出栈顶两个数字进行计算,并将结果压入栈中

class Solution {
public:int evalRPN(vector<string>& tokens) {stack<int> st;for (int i = 0; i < tokens.size(); i++) {if (tokens[i] == "+" || tokens[i] == "-" || tokens[i] == "*" || tokens[i] == "/") {int num1 = st.top();st.pop();int num2 = st.top();st.pop();if (tokens[i] == "+") st.push(num2 + num1);if (tokens[i] == "-") st.push(num2 - num1);if (tokens[i] == "*") st.push(num2 * num1);if (tokens[i] == "/") st.push(num2 / num1);} else {st.push(stoll(tokens[i]));}}int result = st.top();st.pop(); // 把栈里最后一个元素弹出(其实不弹出也没事)return result;}
};

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

相关文章:

  • 数据结构-优先级队列(堆)
  • C++11新特性(语法糖,新容器)
  • 开机可用内存分析Tip
  • 【Python基础】4. 基本语句
  • 兼顾友好与安全,隐私协议 Unijoin 助推新一轮 Web3 浪潮
  • TCP端口崩溃,msg:socket(): Too many open files
  • 基于Laravel 5.6的运动健身类小程序前后端源码
  • NodeMCU ESP8266硬件开发板的熟悉
  • 计算机毕业设计 基于SSM的在线预约导游系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • Mac 挂载 Alist网盘
  • 【多模态融合】TransFusion学习笔记(1)
  • (二)正点原子STM32MP135移植——TF-A移植
  • 将二叉搜索树转化为排序的双向链表
  • 电脑dll丢失应该怎么解决,dll文件丢失怎么恢复方法分享
  • 通达信和同花顺能否实现程序化自动交易股票,量化交易如何实现?
  • 基于Kylin的数据统计分析平台架构设计与实现
  • Linux CentOS7 vim寄存器
  • 摄影后期图像编辑软件Lightroom Classic 2023 mac中文特点介绍
  • 一种4g扫码付费通电控制器方案
  • 桌面自动化工具总结
  • Python入门教程 | Python 常用标准库概览
  • 【JavaScript】读取本地json文件并绘制表格
  • 前端笔试题总结,带答案和解析(一)
  • LeetCode 202 快乐数
  • 国庆作业day6
  • 李沐深度学习记录4:12.权重衰减/L2正则化
  • 堆--数组中第K大元素
  • ipad使用技巧
  • Windows系统上使用CLion远程开发Linux程序
  • github搜索技巧