LeetCode刷题之旅(简单-6):有效的括号

力扣第二十题-有效的括号 前言 力扣第二十题 有效的括号 如下所示: 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 示例 1: 输入:s = “()” 输出:true 示例 2: 输入:s = “()[]{}” 输出:true 示例 3: 输入:s = “(]” 输出:false 一、思路 看到这种一一对应匹配的问题,我第一反应就是想到用 栈 来实现。因为栈的数据结构是先进后出 阅读详情

2019年5月6日

目录

题目:有效的括号

解决方法一:正向思维,栈顶元素与字符串下一字符进行比较

性能结果:

思路:

解决方法二:逆向思维,把匹配元素入栈,顺序弹出时发现跟字符不一致则false

性能结果:

解决方法三:map把键值存储,逐个弹出;

性能结果:

小结:


题目:有效的括号

 

解决方法一:正向思维,栈顶元素与字符串下一字符进行比较


public class EffectiveParentheses {
    public static boolean isValid(String s) {
        boolean result = false;

        // 1.判断是否有效字符串
        if (s != null && (s.length() % 2) == 0){

            Stack<Character> stack = new Stack<Character>();

            char[] chars = s.toCharArray();

            for (int i = 0 ; i < s.length() ; i++){

                // 2.栈空,或栈顶元素跟当前元素不匹配,进栈
                if (stack.isEmpty() || !isMatch(stack.peek(),chars[i])){
                    stack.push(chars[i]);
                }else {
                // 3.栈顶元素跟当前元素匹配,出栈
                    stack.pop();
                }
            }
            result = stack.isEmpty();
        }

        return result;
    }

    private static boolean isMatch(char a ,char b) {
        switch (a){
            case '(':
                if (b == ')'){
                    return true;
                }
                else{
                    return false;
                }
            case '{':
                if (b == '}'){
                    return true;
                }
                else{
                    return false;
                }
            case '[':
                if (b == ']'){
                    return true;
                }
                else{
                    return false;
                }
            default:
                    return false;
        }
    }

    public static void main(String[] args){
//        String var = "()";
//        String var = "()[]{}";
//        String var = "(]";
//        String var = "([)]";
        String var = "{[]}";
        boolean valid = isValid(var);
        System.out.println("result= "+valid);
    }
}

 

性能结果:

思路:

  • 实现的过程中需要使用到stack(栈),栈有别于arraylist等,新添加一个数便将该数存在栈的顶端。

  • 对于这种前后匹配的问题,脑袋里第一个想法就是使用栈来实现。

  • java中栈的函数:

    Stack stack=new Stack();可以实现泛型形式

    stack.push();向栈中添加数据

    stack.peek();栈的顶部的数据

    stack.isEmpty();

     

     

解决方法二:逆向思维,把匹配元素入栈,顺序弹出时发现跟字符不一致则false

public static boolean isValid(String s) {
		if (s.isEmpty())
            return true;
        Stack<Character> stack = new Stack<>();
        for (char c : s.toCharArray()) {
            if (c == '(')
                stack.push(')');
            else if (c == '{')
                stack.push('}');
            else if (c == '[')
                stack.push(']');
            else if (stack.isEmpty() || stack.pop() != c)
                return false;
        }
        return stack.isEmpty();
    }

 

性能结果:

 

解决方法三:map把键值存储,逐个弹出;

public boolean isValid(String s) {
         if(s == null ||s.length() ==1){
            return false;
        }

        Map<Character,Character> map = new HashMap<>();
        map.put('(',')');
        map.put('[',']');
        map.put('{','}');

        char[] chars = s.toCharArray();
        char[] temp = new char[chars.length/2+1];
        int index = -1;
        for (int i = 0; i < chars.length; i++) {
            if(index>=(chars.length+1)/2){
                return false;
            }
            if(index == -1){
                if(map.get(chars[i]) == null){
                    return false;
                }
                index ++;
                temp[index] = chars[i];
                continue;
            }
            char value = temp[index];
            if(map.get(value) == chars[i]){
                index --;
            }else{
                if(map.get(chars[i]) == null){
                    return false;
                }
                index ++;
                temp[index] = chars[i];
            }
        }
        return index<0;
    }

 

性能结果:

 

小结:

  • map的作用是替代一堆值比较的代码,更加清晰。

 

 

C语言刷LeetCode:简单篇:有效的括号 题目描述 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: “()” 输出: true 示例 2: 输入: “()[]{}” 输出: true 示例 3: 输入: “(]” 输出: false 示例 4: 输... 阅读详情

相关推荐

matlab 三维绘图 抛光,瓷砖抛光过程建模与仿真

:瓷砖抛 光过程 建模与仿真朱 成 就(广 东工业大学 机 电工程 学院, 广东广州 )摘要 :瓷砖的抛磨影响 因素众 多 ,实际磨削加工时容易出现漏抛 、返抛现象 。对陶瓷抛光机磨头进行运动学分析 ,并基于不 同粒度号 的磨 粒在一定压力下的加工深度模型 ,探讨抛光机磨 头转 速 、横梁摆动频率 、传送速度对瓷砖抛光加工表 面均匀性 的影响,然 后结合 磨削机理使 用 对陶瓷抛光过程进行仿真 ...

weixin_36331058的博客 747

(小甲鱼编程题列表II)请编写一个程序,判断给定的字符串 s 中括号的写法是否合法。

(小甲鱼编程题列表II)请编写一个程序,判断给定的字符串 s 中括号的写法是否合法。

qq_44985415的博客 597

【TM1640】STM32 TM1640芯片驱动程序

以下为.h文件: #ifndef __TM1640_H__ #define __TM1640_H__ #include "stm32f10x.h" #define ADDR_START1640 0XC0 #define DSP1640_DIS 0 #define DSP1640_ENB 1 /* 控制显示 ...

cxw312864660的博客 1万+

Leetcode 146. LRU缓存机制

146. LRU缓存机制 运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。 获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。 写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数...

歌古道的博客 360

基于OpenCV的围棋终局识别与胜负判定系统实现

计算机视觉是人工智能领域的关键技术,它使计算机能够从数字图像或视频中获取、处理和分析信息。其核心原理在于通过图像处理算法提取特征,并基于这些特征进行识别、分类和测量。在工程实践中,计算机视觉技术为自动化、智能化应用提供了强大支持,广泛应用于工业检测、自动驾驶、医疗影像分析等领域。本文聚焦于一个具体的应用场景:利用OpenCV库实现围棋终局识别。通过图像预处理、棋盘检测与透视校正、交叉点定位等步骤,结合围棋规则逻辑,构建了一套从棋盘图像自动判定胜负的解决方案。该方案涉及自适应二值化、霍夫变换、连通域分析等关键

weixin_29100927的博客 279

信创改造实战:SpringBoot项目迁移到宝兰德BES 9.5.5的完整避坑指南(附依赖配置)

本文详细介绍了将SpringBoot项目迁移到宝兰德BES 9.5.5中间件的完整流程,包括环境准备、依赖调整、Web.xml版本适配、部署配置优化及常见问题解决方案。特别针对信创改造需求,提供了排除Tomcat依赖、处理BES专用starter等实用技巧,帮助开发者顺利完成国产中间件迁移。

weixin_30825581的博客 1097

java如何判断中文括号_B站真题:如何判断括号是否有效?

今天要讲的这道题是 bilibili 今年的笔试真题,也是一道关于栈的经典面试题。经过前面文章的学习,我想很多朋友已经看出来了,我接下来要写的是一个关于「算法图解」的系列文章,中间可能会穿插少量的其他类型的文章,但「算法和数据结构」会是我今年文章输出的重点内容。我在写这个算法系列的时候会注意两个问题:保证算法的解题思路大家都能看懂,因此我会以图片的形式进行思路讲解,这样更直观、更易于理解;在介绍完...

weixin_39897746的博客 748

管好 SAP Fiori Launchpad Content:技术目录、业务目录与 KPI 工具的完整治理思路

SAP Fiori Launchpad 作为企业级统一入口,需通过技术目录(源对象)和业务目录(引用编排)分层治理。技术目录由 Launchpad App Manager 维护,负责应用描述对象(Tile 和 Target Mapping)的创建与管理;业务目录由 Launchpad Content Manager 编排,通过引用技术目录对象实现灵活配置。分析型内容则通过 F2814 统一管理。这种分层设计支持应用复用,便于升级维护,是 SAP S/4HANA 项目中实现高效内容治理的关键。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 130

判断括号字符串是否合法 valid-parentheses

20.Valid Parentheses Easy 2700136FavoriteShare Given a string containing just the characters'(',')','{','}','['and']', determine if the input string is valid. An input string is valid if: ...

haponchang的博客 556

基于simulink的低通滤波器(Low-pass Filter, LPF)

摘要:本文详细介绍了如何在Simulink中搭建低通滤波器进行噪声抑制仿真。通过定义系统需求(50Hz信号+250Hz噪声)、添加信号源、设计6阶巴特沃斯低通滤波器(截止频率100Hz)、连接各模块并配置仿真参数,最终实现高频噪声的有效滤除。该教程包含从模型创建到结果分析的完整流程,为信号处理系统开发提供了基础框架,并可进一步扩展为自适应滤波等高级应用。所需MATLAB版本为R2023a及以上,需安装Simulink和DSPSystemToolbox。

amy_mhd的博客 1303

算法实现之有效的括号

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

handy周 544

华为OD机试 - TLV格式(Python/JS/C/C++ 2025 C卷 100分)

两端通过TLV格式的报文来通信,现在收到对端的一个TLV格式的消息包,要求生成匹配后的(tag,length,valueOffset)列表。和需要匹配的n个tag对应的n行匹配结果,每一行由长度和偏移量组成。第二行:需要匹配的tag数量n(0 < n < 1000)后面N行:需要匹配n个tag值(十进制表示),递增排列。标签10(0A)存在,长度3,valueOffset=2。标签15(0F)长度4,valueOffset=2。标签14(0E)长度2,valueOffset=8。

学Java,找哪吒 2038

Leetcode刷题之有效的括号

小陈同学正在参加新星计划,希望各位老铁能支持一下,感谢啊。

adcxhw的博客 2840

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

力扣刷题之旅——20. 有效的括号

括号?不是有手就行.....

C语言入门 2062

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【力扣刷题实战】有效的括号

力扣刷题实战,看看这道题你会了吗?

2401_85548793的博客 1175

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【LeetCode刷题指南】--有效的括号

本文介绍了使用栈结构解决LeetCode"有效的括号"问题的思路。作者通过C语言实现了一个栈结构,并详细讲解了解题步骤:遍历字符串时左括号入栈,右括号与栈顶元素匹配,匹配失败返回false,成功则出栈继续遍历,最后判断栈是否为空来确定括号有效性。文章强调力扣平台更适合面试准备,并提供了完整的代码实现。复杂度分析显示时间复杂度为O(n),空间复杂度为O(*)。作者建议读者直接使用已实现的栈结构来解决问题。

会当凌绝顶,一览众山小 1207

LeetCode刷题20-简单-有效的括号

算法作为极其重要的一点,是大学生毕业找工作的核心竞争力,所以为了不落后与人,开始刷力扣算法题!

布小禅的博客 1173

LeetCode高频题20:有效的括号

1)括号匹配问题,有一系列的题目,最开始那几个基础,是只有一种小括号()的情况,然后看合法不合法 2)本题有多重括号,你需要用栈来压入弹出对比,匹配不上就不行。 3)笔试求AC,可以不考虑空间复杂度,但是面试既要考虑时间复杂度最优,也要考虑空间复杂度最优。...

weixin_46838716的博客 1764

LeetCode刷题系列——最长有效括号

前言 最近被新型冠状病毒搞得人心惶惶,大家都不太敢出门,我也不敢出门(哈哈哈),索性就在家里刷了一道leetcode的简单题——有效的括号(leetcode20题),说简单也不简单,说难也不难,刷完之后觉得意犹未尽。然后再刷了一道leetcode的困难题——最长有效括号(leetcode32题)。今天就来讲一下这两道相似题目的题解。 第一题(leetcode20_有效的括号) 思路 先列出...

god-jiang的博客 455

【力扣】stack容器的探索之有效的括号

Leetcode的一道难度为简单的算法题,可以帮助大家很好的理解Stack这个数据结构,希望大家喜欢。更多专栏请点击专栏名字🔥Elasticsearch专栏es🔥spring专栏spring开发redis专栏redis学习笔记🔥项目专栏项目集锦修bug专栏bug修理厂。

狮子也疯狂的博客 1230

LeetCode刷题(5)~有效的括号

题目描述 给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: “()” 输出: true 示例 2: 输入: “()[]{}” 输出: true 示例 3: 输入: “(]” 输出: false 示例 4: 输入: “([)]” 输出: false 示例 5: 输入: “{[]}” 输出: true

海到无边天作岸 山登绝顶我为峰 1553

Leetcode“有效的括号”python3解题(力扣刷题之路)

Leetcode“有效的括号”python3解题(力扣刷题之路) class Solution: def isValid(self, s: str) -> bool: S=[] x='' for i in s: if i=='(' or i=='[' or i=='{': S.ap...

qq_43186017的博客 349

力扣刷题——简单题第20题 有效的括号

这道题的要求简单来说就是给你一串括号的字符串,满足两个判断条件才能算有效 1. 左括号必须用相同类型的右括号闭合 这个要求的意思 小中大的括号必须和同类型的括号闭合 比如不能这样:(] 、[}、{) 2. 左括号必须以正确的顺序闭合 简单来说就是不能这样:)(、}{、][ 括号必须按顺序闭合 —————————————————————————————————————————— 实现思路: 1. 遍历括号字符串把【所有的小中大左边括号】放到一个数组里,【注意!是所有左边括号...

Zero_kuma的博客 634

力扣刷题笔记 20. 有效的括号 C#

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

cjc52294的博客 368

力扣LeetCode第20题有效的括号

力扣LeetCode第20题有效的括号 题目: 给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/valid-parentheses 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 思路: 1、首先做该题目最好的方法是利用栈 2、循环遍历字符串s每

weixin_44061444的博客 553
上一篇: LeetCode刷题之旅(简单-5):最长公共前缀
下一篇: 《转载》o(1), o(n), o(logn), o(nlogn) 是什么含义?
后台技术汇
博客等级 码龄11年 670粉丝 531原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

后台技术汇

对你的帮助,是对我的最好鼓励。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值