【力扣刷题 | 第八天】

news2025/4/15 2:58:24

前言: 

本章将利用栈与队列来尝试解决实际问题。

20. 有效的括号 - 力扣(LeetCode)

给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。

思路:无效括号无非就三种情况

  • 多余左括号
  • 多余右括号
  • 左右括号不匹配
class Solution {
public:
    bool isValid(string s) {

        if(s.size()%2!=0)
        {
            return false;
        }

        stack<char> d1;
        for(int a=0;a<s.size();a++)
        {
            if(s[a]=='(')
            {
                d1.push(')');
            }
            else  if (s[a]=='{')
            {
                d1.push('}');
            }
            else  if (s[a]=='[')
            {
                 d1.push(']');
            }
            else if(d1.empty()|| d1.top() != s[a])
            {
                return false;
            }
            else{
                d1.pop();
            }      
           
        }
        return d1.empty();
    }
};

1047. 删除字符串中的所有相邻重复项 - 力扣(LeetCode)

 

给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。

在 S 上反复执行重复项删除操作,直到无法继续删除。

在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。

 解法:

class Solution {
public:
    string removeDuplicates(string s) {
        stack<char>d1;
        for(int i=0;i<s.size();i++)
        {
            if(d1.empty())
            {
                d1.push(s[i]);
                continue;
            }
            if(d1.top()==s[i])
            {
                d1.pop();
                continue;
            }
            else
            {
                d1.push(s[i]);
            }           
        }
      string result = "";
        while (!d1.empty()) { 
            result += d1.top();
            d1.pop();
        }
        reverse (result.begin(), result.end()); 
        return result;
        
    }
};

 总结:

             栈可以用来解决一些问题,我们要掌握好栈这种数据结构。

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/644191.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python批量删除:简化SEO优化的过程

Python批量删除&#xff1a;简化SEO优化的过程 SEO&#xff08;Search Engine Optimization&#xff09;优化是网站运营中不可忽视的一项任务。其中涉及到对内容和网站结构的优化&#xff0c;而这些工作也离不开对数据的处理。其中一个常见问题是需要删除一批旧的或者无用的页…

《统计学习方法》——条件随机场(中)

引言 这是统计学习方法第十一章条件随机场的阅读笔记&#xff0c;包含所有公式的详细推导。 条件随机场(conditional random field,CRF)是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型&#xff0c;其特点是假设输出随机变量构成马尔可夫随机场。 建议先阅…

chatgpt赋能python:Python怎么持续输入?

Python怎么持续输入&#xff1f; Python是一个高级编程语言&#xff0c;它的简单易用性让它成为程序员们心仪的语言之一。在Python编程中&#xff0c;输入是一个非常重要的环节。 在这篇文章中&#xff0c;我们将讨论Python如何进行持续输入。我们将介绍几种不同的方法&#…

计算机图形学与opengl C++版 学习笔记 第10章 增强表面细节

假设我们想要对不规则表面的物体进行建模&#xff0c;例如橘子凹凸的表皮、葡萄干褶皱的表面或月球的陨石坑表面。我们该怎么做&#xff1f;到目前为止&#xff0c;我们已经学会了两种可能的方法&#xff1a; &#xff08;a&#xff09;我们可以对整个不规则表面进行建模&…

【期末总复习】数字图像处理知识要点

【A卷】 【选择】 1、计算机器显示彩色图像的格式 2、灰度反转后&#xff08;一副图像灰度级&#xff09;的灰度值是几 3、灰度图像浅色背景下加圆环会导致什么后果 4、图像平滑的模板有哪些 5、γ矫正指的是什么数学变换 6、一阶锐化空间滤波器有哪些 7、图像复原、图像增强…

运维(SRE)成长之路-第1天 搭建虚拟机(图示)

1.Linux安装前准备 虚拟机&#xff1a;用软件&#xff08;如&#xff1a;vmware,virtualbox等&#xff09;模拟硬件,方便实验的灵活配置 虚拟化软件&#xff0c;建议使用 Vmware Workstation 虚拟硬件配置 CPU&#xff1a;2核或更多 内存&#xff1a;1G以上&#xff0c;推荐2…

chatgpt赋能python:Python中如何找出最小的2个值

Python中如何找出最小的2个值 Python作为一种高效可靠的编程语言&#xff0c;拥有出色的处理数据和算法的能力。在数据处理中&#xff0c;常常需要对数据进行排序并找出最小&#xff08;或最大&#xff09;的数值。本文将着重介绍如何在Python中找出最小的2个值。 方法1&…

编程比赛 (ACM竞赛)常用术语

比赛相关 AK&#xff1a;All-Killed 通常指在信息学竞赛中获得满分&#xff08;即 AC 了所有题目&#xff09;。 由于在中高级信息学竞赛中&#xff08;如 IOI&#xff0c;NOI&#xff0c;NOIP&#xff0c;ACM&#xff09;&#xff0c;想要获得满分普遍较难&#xff0c;甚至根…

java三大特性之【继承】

概念 继承就是将多个类的共性抽取出来&#xff0c;提出继承的概念。就是在进行共性抽取&#xff0c;实现代码复用。 提高代码的复用性&#xff0c;方便进行子类&#xff0c;子功能的扩展&#xff0c;将所有共性的内容放在父类&#xff08;基类&#xff09;&#xff0c;子类只…

裁剪lua5.3.4

在 Lua 5.3.4 中&#xff0c;有一些宏定义可以缩小 Lua 的资源占用&#xff0c;包括&#xff1a; LUA_COMPAT_5_2&#xff1a;该宏定义可以将 Lua 5.3 的行为与 Lua 5.2 兼容&#xff0c;缩小 Lua 的资源占用。例如&#xff0c;该宏定义可以禁用一些 Lua 5.3 中新增的语法特性&…

在线协同办公小程序开发搭建开发环境

目录 介绍 开发环境说明 虚拟机 原因 VirtualBox虚拟机 VMware虚拟机v15 安装MySQL数据库 安装步骤 导入EMOS系统数据库 安装MongoDB数据库 启动Navicat&#xff0c;选择创建MongoDB连接 创建用户 搭建Redis数据库 配置Maven 安装IDEA插件 Lombok插件 …

基于Java+SpringBoot+Vue实现前后端分离美术馆管理系统

博主介绍&#xff1a;✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…

【哈佛积极心理学笔记】第15讲 完美主义

第15讲 完美主义 A person committed to excellence can still be as ambitious or more ambitious than a perfectionist. The difference between the two is just their approach toward the journey. There is no straight line toward success. Perfection vs Excellenc…

CMake入门(1)

背景 目前很多大型框架都是使用cmake去构建&#xff0c;如果看不懂cmake, 在实际修改框架&#xff0c;添加新的模块时候就会受制于人&#xff0c;为此需要了解cmake的相关基础支持&#xff0c;避免被某些装逼大佬卡脖子&#xff0c;同时也进一步提高自己的业务水平。 变量 c…

Hello算法学习笔记之数组与链表

一、数组 线性数据结构&#xff0c;其将相同类型元素&#xff08;链表就不一定要存储相同类型的元素&#xff09;存储在连续的内存空间中。。数组有Index 数组的优点&#xff1a;访问很高效&#xff0c;O&#xff08;1&#xff09; PS:元素长度是单个元素占用的内存空间&…

CSS基础学习--13 Display(显示) 与 Visibility(可见性)

一、定义 display属性设置一个元素应如何显示 visibility属性指定一个元素应可见还是隐藏 二、隐藏元素 - display:none或visibility:hidden 隐藏一个元素可以通过把display属性设置为"none"&#xff0c;或把visibility属性设置为"hidden"。但是请注意&am…

Aprioi关联算法

国际权威的学术会议IEEE International Conference on Data Mining (ICDM) 评选出了数据挖掘领域的十大经典算法&#xff0c;他们分别是&#xff1a;C4.5、kMeans、SVM、Apriori、EM、PageRank、AdaBoost、KNN、Naive Bayes以及CART。今天就让我们共同探讨一下十大算法之一Apri…

红黑树的插入和删除

红黑树&#xff08;C&#xff09; 红黑树简述红黑树的概念红黑树的性质红黑树结点定义 一&#xff0c;红黑树的插入插入调整插入代码 二&#xff0c;红黑树的验证三&#xff0c;红黑树的删除待删除的结点只有一个子树删除结点颜色为红色删除结点颜色为黑色 删除的结点为叶子节点…

【OpenMMLab AI实战营二期笔记】第六天 MMDetection代码课

0. 环境检测和安装 # 安装 mmengine 和 mmcv 依赖 # 为了防止后续版本变更导致的代码无法运行&#xff0c;暂时锁死版本 pip install -U "openmim0.3.7" mim install "mmengine0.7.1" mim install "mmcv2.0.0"# Install mmdetection rm -rf mmd…

软考A计划-系统架构师-知识点汇总-上篇

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…