LeetCode [栈] 20.Valid Parentheses (C++和Python实现)

【Leetcode刷题笔记】栈 目录一、有效的括号二、最小栈 一、有效的括号 【题号】20 【题目描述】 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: “()” 输出: true 示例 2: 输入: “()[]{}” 输出: true 示例 3: 输入: “(]” 输出: false 示例 4: 输入: “([)]” 输出: false 示例 5: 输入: “{[]}” 输出: true 【常规解法】 1.初始化栈 S。 2.一次处理表 立即下载

20 Valid Parentheses [难度:简单] [括号匹配]

【题目】

Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.

An input string is valid if:

  1. Open brackets must be closed by the same type of brackets.
  2. Open brackets must be closed in the correct order.

Note that an empty string is also considered valid.

Example 1:

Input: "()"
Output: true

Example 2:

Input: "()[]{}"
Output: true

【解题C++】

很经典的一道题啦~不多说,都在注释里。

class Solution {
public:
    bool isValid(string s) {
        stack<char> st;
        for(int i=0;i<s.length();i++)
        {
            //如果栈为空,直接入栈
            if(st.empty())
                st.push(s[i]);
            //如果栈中有符号,将它和准备入栈的符号进行对比,匹配的话,栈中符号出栈
           else if((st.top()=='('&&s[i]==')')||(st.top()=='['&&s[i]==']')||(st.top()=='{'&&s[i]=='}'))
                st.pop();
            //否则,继续入栈
            else
                st.push(s[i]);
        }
        //最后如果栈为空,说明匹配成功
        return st.empty();
    }
};

【解题Python】

自己开头写了一个巨垃圾的代码,看完官方题解默默删掉重来= = 思路是一样的,但是Python可以写得更灵活一些,看来我应该多熟悉一下Python的语法了。

class Solution:
    def isValid(self, s: str) -> bool:
        # 字典大法好!!!注意这里是右边符号:左边符号
        mapping = {')':'(',']':'[','}':'{'}
        # 用列表模拟栈
        stack = []
        for str in s:
            # 如果当前字符为右边括号
            if str in mapping:
                # 如果栈不为空,弹出栈顶元素并赋值给top,不然赋个无效值
                top = stack.pop() if stack else '#'
                # 如果栈顶元素不是匹配的左括号,返回错误
                if mapping[str] != top:
                    return False
            # 如果当前字符为左边括号,入栈
            else:
                stack.append(str)
        # 栈为空,返回正确
        return not stack
从TCGA官网获取新版count数据并精准转换为TPM的实战指南 本文详细介绍了从TCGA官网获取新版count数据并精准转换为TPM的实战指南。通过TCGAbiolinks工具下载原始count数据,结合GENCODE v36注释文件计算基因有效长度,最终实现count到TPM的标准化转换,确保数据完整性和分析可靠性。文章包含完整代码示例和常见问题解决方案,特别适合生物信息学研究人员参考。 阅读详情

相关推荐

autodl云服务器使用中的conda源报错

通过find path -name filename找到.condarc文件,在autodl服务器中,一般在/root/.condarc。为了利用jypyter打开conda虚拟环境运行,需要下载ipykenel。这个报错是源的问题,在通过源获取包元数据时出现了HTTP 429错误。通过conda换源解决。修改.condarc文件,命令: vim .condarc。但这样还不能解决问题,得把报错中有问题的源注释掉。通过以下命令添加清华镜像源。把报错的链接源注释如下。

Ty_kilig的博客 1584

Leetcode刷题笔记——栈篇

栈是一种先进后出的数据结构,栈作为一种数据结构,是一种只能在一端进行插入和删除操作的特殊线性表,这里我不做过多介绍,栈的应用和练习算是面试中的高频考点了,接下来看下我们来看一下Leetcode关于栈的常见面试题题型,每道题都附上了简单明了的python解法,大家重点关注算法思想即可。

qq_42898642的博客 1448

Educoder | 计算机网络实验-Ping命令与ICMP协议分析

任务描述本关任务:捕获 Ping 程序生成的数据包。相关知识ping命令Ping 程序是一个简单的工具,允许任何人(例如:网络管理员)验证主机是否存在。源主机中的 Ping 程序将数据包发送到目标 IP 地址;如果目标是在线的,则目标主机中的 Ping 程序将会发送响应 Ping 数据包证明他在线,这两个 Ping 数据包都是 ICMP 数据包。在 Unix/Linux,序列号从 0 开始计数,依次递增。而 Windows 中 ping 程序的 ICMP 序列号是没有规律;;。

Mksg_28的博客 7623

LeetCode刷题 --- 栈

图示,先push1,2,3,然后peek,栈1内元素转到栈2,后面只要栈2不为null,就可以执行pop和peek操作,如果为空,在吧元素从栈1转到栈2 就可以了。每次入栈的时候,判断当前元素和栈顶元素是否配对,如果配对,则弹出,如果不配对,则继续入栈。最后栈元素为空,则true,否则,为false。遇到左括号,则对应的右括号入栈,遇到右括号,则比较与栈顶元素是否一致,一致则出栈,继续,否则直接返回false。请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(

qq_43325216的博客 693

CST--时域仿真的网格设置技巧

对于物理概念清晰的工程师而言,使用时域算法几乎能够解决所有电磁仿真问题,但是,掌握时域算法的仿真技巧比掌握频域的难度大,这恐怕也是很多仿真工程师更喜欢使用频域算法的原因,因此,对于时域算法的灵活应用更能考验你是否是一名合格的仿真工程师。

一只豌豆象的博客 6857

使用 AFL++ 对 IoT 二进制文件进行模糊测试 - 第一部分

American fuzzy lop 是一款面向安全的模糊测试器,它采用一种新型的编译时插桩和遗传算法,可以自动发现干净、有趣的测试用例,从而触发目标二进制文件中新的内部状态。这显著提高了模糊测试代码的功能覆盖率。AFL 的地址是它已经有一段时间没有更新了。虽然 AFL 仍然运行良好,但有一个新项目 AFL++,它是 AFL 的一个分支,包含许多改进和新功能。AFL++ 的地址是,其源代码位于。在本文中,我们将研究如何使用 AFL++ 对 IoT 二进制文件进行模糊测试。

技术超强的网络安全平台 1085

LeetCode栈和队列经典例题

这里有四道关于栈和队列的经典题型

m0_70811813的博客 1196

Dify 第 4 篇 Dify 示例:数据库执行Agent

本文介绍了如何在Dify平台创建一个能够执行SQL查询的数据库Agent。通过安装并配置"通义千问"和"数据库"两个插件,实现自然语言到SQL语句的转换和执行。关键步骤包括:1)安装插件并配置API Key;2)设置默认数据库连接(建议使用只读账号);3)准备测试数据表结构。该Agent支持通过工具调用查询表结构、转换自然语言为SQL、执行查询并返回结果,同时提供了CSV查询和HTTP API接口功能。文中还提供了MySQL测试数据表的创建脚本和示例数据。

甘蓝的专栏 1156

LeetCode算法(栈)

今天的练习是栈的相关题目,首先先解释一下什么是栈栈的基本思路是通过数组来存储栈中的元素,并通过栈顶指针指示栈顶元素在数组中的位置。栈具有以下特点:存储结构:使用数组作为底层存储结构,数组的每个元素存储栈中的一个元素;操作受限:栈只能从栈顶插入和删除元素,不支持在栈中间插入和删除元素;先进后出:栈的元素遵循 “先进后出” 的原则,即后插入的元素先被删除;顺序访问:只能从栈顶开始访问栈中的元素,不能从栈底或中间位置访问元素。在开始栈相关的算法前,我们需要一个栈,那么先来手写一个栈结构。

jiangyule的博客 776

2023年五一数学建模 | 第二十届五一数学建模C题:“双碳”目标下低碳建筑研究

2023年五一数学建模 | 第二十届五一数学建模C题:“双碳”目标下低碳建筑研究

前程算法屋的博客 1377

PCL 平面点云的凹多边形边界提取【2025最新版】

平面点云的凹多边形边界提取及边界轮廓线绘制。博客长期更新,本文最近更新时间为:2025年1月6日。

点云侠的博客 7183

leetCode-栈类型详解

在刷题的时候遇到一个后缀表达式的题目,然后感觉该题是比较经典的栈应用类型的题目,正好借着该题,给大家聊一聊栈的用法,顺便解决了这道题。众所周知,栈是是一个先进后出的数据结构,利用该特性,在程序的设计中十分常见,如:括号匹配、表达式求值、在递归中的应用等都离不开栈这一数据结构。我下面一一给大家简单说一下。(PS:栈的数据结构我就不再此处赘述,大家可以自行了解)假设表达式中允许包含两种括号 :|直|括号和方括号 ,其嵌套 的顺序任意 即([]())或[([][ ])]等均为正确的格式,[(])或([())或((

zhiyikeji的博客 709

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

LeetCode 20 — Valid Parentheses(C++ Java Python)

题目:http://oj.leetcode.com/problems/valid-parentheses/ Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. The brackets must close

龙之梦 3981

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【Leetcode】Valid Parentheses

Leetcode(四)Valid Parentheses

Wing_93的博客 337

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

[LeetCode] 020. Valid Parentheses (Easy) (C++/Java/Python)

[LeetCode] 020. Valid Parentheses (Easy) (C++/Java/Python)

水果君の日常 3867

【Leetcode】Longest Valid Parentheses

题目链接:https://leetcode.com/problems/longest-valid-parentheses/题目: Given a string containing just the characters ‘(’ and ‘)’, find the length of the longest valid (well-formed) parentheses substring.For

业精于勤,荒于嬉 1927

LeetCode20. Valid Parentheses(C++/Python)

Given a string containing just the characters'(',')','{','}','['and']', determine if the input string is valid. An input string is valid if: Open brackets must be closed by the same type of b...

qq_41562704的博客 222

[ LeetCode ] #20. Valid Parentheses(符号匹配 C++ & Python)

题目:20. Valid Parentheses Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid. An input string is valid if: Open brackets must be cl...

xn's blog 222

Leetcode 32. Longest Valid Parentheses (python+cpp)

Leetcode 32. Longest Valid Parentheses题目解法1:stack解法2:两次扫描 题目 解法1:stack 解释参见comment class Solution: def longestValidParentheses(self, s: str) -> int: # add -1 as the starting of a valid sequence stack = [-1] max_length = 0

qq_37821701的博客 223

leetcode 20 Valid Parentheses 括号匹配

Given a string containing just the characters '(', ')', '{', '}', '[' and']', determine if the input string is valid. The brackets must close in the correct order, "()" and "()[]...

adr5970的博客 127

LeetCode 20.有效的括号(Valid Parentheses)

LeetCode.jpg 有效的括号 有效的括号(Valid Parentheses) 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出: true 示例 2: 输入: "...

墨1024 194

【LeetCode】Valid Parentheses(有效的括号)

这道题是LeetCode里的第20道题。 题目要求: 给定一个只包括'(',')','{','}','[',']'的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出: true 示例2: 输入: "()[]{}" 输出: true...

『诞生之时已至,以此修正万象』 257

LeetCode 刷题记录 20. Valid Parentheses

题目: Given a string containing just the characters ‘(’, ‘)’, ‘{’, ‘}’, ‘[’ and ‘]’, determine if the input string is valid. An input string is valid if: Open brackets must be closed by the same type of...

dldldl1994的博客 185

Leetcode - 20 - Valid Parentheses (easy)

Given a stringscontaining just the characters'(',')','{','}','['and']', determine if the input string is valid. An input string is valid if: Open brackets must be closed by the same type of brackets. Open brackets must be closed in the correct ...

xin_rong的博客 267

【leetcode】20. Valid Parentheses(Python & C++)

20. Valid Parentheses题目链接20.1 题目描述:Given a string containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, determine if the input string is valid.The brackets must close in the correct order, “(

I am what i am 973
上一篇: LeetCode [链表] 141.Linked List Cycle (C++和Python实现)
下一篇: LeetCode [栈] 155.Min Stack(C++和Python实现)
DayDreammerⅠ
博客等级 码龄9年 9粉丝 122原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值