[JS][编程题]括号匹配

news/2024/2/29 3:04:08

括号匹配

题目来源:牛客网
题目链接:括号匹配

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 256M,其他语言512M

题目描述

给定一个只包含括号的字符串,判断字符串是否有效。其中,括号种类包含: ‘(’,’)’,’{’,’}’,’[’,’]’。有效字符串需满足:1) 左括号必须用相同类型的右括号闭合;2)左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串


示例1

输入

"{[]}"

输出

true

示例2

输入

"([)]"

输出

false

示例3

输入

"([]"

输出

false

思路

首先这里有一个字符串,把它转换成Array形式,然后定义一个空栈,遇到正括号就push进去(入栈),遇到反括号就判断栈顶元素是不是它的“对象”,是就把栈顶元素pop()掉(出栈),不是就直接false了,最后判断栈是否为空。
理解了之后,就跟玩消消乐似的。


题解

  • javascript V8版
//括号匹配let a = readline().split('')
// let a = '([]'.split('')
let b = new Array()
let flag = 0
for (let i = 0; i < a.length; i++) {if (a[i] == '(' || a[i] == '[' || a[i] == '{') {b.push(a[i])} else {if (a[i] == ')') {if (b[b.length - 1] == '(') {b.pop()} else {flag = 1break}}if (a[i] == ']') {if (b[b.length - 1] == '[') {b.pop()} else {flag = 1break}}if (a[i] == '}') {if (b[b.length - 1] == '{') {b.pop()} else {flag = 1break}}}
}
if (b.length != 0) {flag = 1
}
if (flag == 0) {console.log(true)
} else {console.log(false)
}
  • 核心代码模式(JavaScript Node版)提交时用的这个哦
/**** @param s string字符串* @return bool布尔型*/
function IsValidExp(s) {// write code herelet a = s.split('')let b = new Array()let flag = 0for (let i = 0; i < a.length; i++) {if (a[i] == '(' || a[i] == '[' || a[i] == '{') {b.push(a[i])} else {if (a[i] == ')') {if (b[b.length - 1] == '(') {b.pop()} else {flag = 1break}}if (a[i] == ']') {if (b[b.length - 1] == '[') {b.pop()} else {flag = 1break}}if (a[i] == '}') {if (b[b.length - 1] == '{') {b.pop()} else {flag = 1break}}}}if (b.length != 0) {flag = 1}if (flag == 0) {return true} else {return false}
}
module.exports = {IsValidExp: IsValidExp,
}

http://www.ppmy.cn/news/607432.html

相关文章

芯片封测技术

芯片封测技术 长电科技是全球领先的集成电路制造和技术服务提供商&#xff0c;提供全方位的芯片成品制造一站式服务&#xff0c;包括集成电路的系统集成、设计仿真、技术开发、产品认证、晶圆中测、晶圆级中道封装测试、系统级封装测试、芯片成品测试并可向世界各地的半导体客户…

Unity的小工具

最近项目工期紧&#xff0c;所以更新少了&#xff0c;不过我遇到一些问题&#xff0c;当我的UI/序列帧过多的时候&#xff0c;我需要去选中UI转换成Sprite&#xff0c;而且用shift选中的时候&#xff0c;文件夹中上百个文件&#xff0c;中间混进一个其他格式的文件我还得一个一…

芯片IP,SOC,FPGA智能卡

芯片IP,SOC,FPGA智能卡 华夏芯&#xff08;北京&#xff09;通用处理器技术有限公司&#xff08;以下简称“华夏芯”&#xff09;是创新的异构处理器 IP 提供商和芯片解决方案提供商&#xff0c;集团总部在北京&#xff0c;并分别在上海、纽约等地设有研发和销售中心。 华夏芯拥…

客快物流大数据项目(七十):Impala入门介绍

文章目录 Impala入门介绍 一、impala基本介绍 二、Impala与hive的关系

BP 神经网络

基于BP神经网络与遗传算法实现盾构砂浆性能优化方法技术 技术编号&#xff1a;14113655阅读&#xff1a;494留言&#xff1a;0更新日期&#xff1a;2016-12-07 11:00本发明专利技术公开了一种基于BP神经网络与遗传算法实现盾构砂浆性能优化方法&#xff0c;包括以下步骤&#x…

torch.nn.Linear()函数的理解

import torch x torch.randn(128, 20) # 输入的维度是&#xff08;128&#xff0c;20&#xff09;m torch.nn.Linear(20, 30) # 20,30是指维度output m(x)print(m.weight.shape:\n , m.weight.shape)print(m.bias.shape:\n, m.bias.shape)print(output.shape:\n, output.sha…

IP SOC与Camera ISP

IP SOC与Camera ISP FH8858V200: 新一代8M高性能网络摄像机 SoC FH8858V200是新一代面向8M专业型网络摄像机应用的高性能H.265/H.264/JPEG SoC芯片。芯片集成了高性能的ISP图像处理模块和最新的Smart H.265视频压缩编码器&#xff0c;具备优异的图像处理能力、较高的编码质量和…

大数据必学Java基础(三十七):代码块讲解

文章目录 代码块讲解 一、代码 二、总结 代码块讲解 类的组成:属性,方法,构造器,代码块,内部类 代码块分类:普通块,构造块,静态块,同步块(多线程)

[JS] 闭包与内存泄漏

一句话总结闭包&#xff1a;函数里套函数&#xff0c;函数返回函数。 内存泄漏&#xff1a;每次外部函数执行的时候&#xff0c;外部函数的引用地址不同&#xff0c;都会重新创建一个新的地址。但凡是当前活动对象中有被内部子集引用的数据&#xff0c;那么这个时候&#xff0…

大数据必学Java基础(三十八):包和import讲解

文章目录 包和import讲解 一、生活案例 二、包的作用 三、创建包 四、导包问题

显示器面板技术特点

显示器面板技术特点 1.显示器面板 京东方显示器面板涵盖18.5英寸到43英寸全系列产品&#xff0c;具有高画质、宽视角、高刷新率、低功耗、无边框等特点&#xff0c;分辨率可高达8K&#xff0c;产品广泛应用于娱乐、办公、专业设计等领域。 技术亮点 • Dream Color 通过BD ce…

seq2seq(1)- EncoderDecoder架构

零 seq2seq是从序列到序列的学习过程&#xff0c;最重要的是输入序列和输出序列是可变长的&#xff0c;这种方式就非常灵活了&#xff0c;典型的机器翻译就是这样一个过程。 一 最基本的seq2seq网络架构如下所示&#xff1a; 可以看到&#xff0c;encoder构成一个RNN的网络&…

NXP自动驾驶方案

NXP自动驾驶方案 1.安全性 概述 NXP Automotive High Performance Compute利用无缝互操作和汽车级解决方案&#xff0c;加速自主车辆开发&#xff0c;以最大限度地提高安全性。 需要处理&#xff08;或融合&#xff09;越来越多的传感器&#xff08;如摄像头、雷达、激光雷达…

PyTorch学习笔记——softmax和log_softmax的区别、CrossEntropyLoss() 与 NLLLoss() 的区别、log似然代价函数...

1、softmax 函数 Softmax(x) 也是一个 non-linearity, 但它的特殊之处在于它通常是网络中一次操作. 这是因为它接受了一个实数向量并返回一个概率分布.其定义如下. 定义 x 是一个实数的向量(正数或负数都无所谓, 没有限制). 然后, 第i个 Softmax(x) 的组成是 exp(xi)∑jexp(xj)…

大数据必学Java基础(三十九):面向对象三大特性之一封装(Encapsulation)

文章目录 面向对象三大特性之一封装(Encapsulation) 一、生活案例 二、Java中封装的理解

将 Layui 日历框,一周开始由星期日改为星期一

Layui 的日历框控件中&#xff0c;一周的开始是星期日。 但是我更习惯一周开始为星期一。在 ISO8601:2000 中&#xff0c;其中也是规定了&#xff1a;每个日历星期从星期一开始&#xff0c;星期日为第 7 天。 所以改一下。 改 layui.all.js 或 laydate.js&#xff08;取决于…

CSRF攻击与防御

转载地址&#xff1a;http://www.phpddt.com/reprint/csrf.html CSRF概念&#xff1a; CSRF跨站点请求伪造(Cross—Site Request Forgery)&#xff0c;跟XSS攻击一样&#xff0c;存在巨大的危害性。你可以这样来理解&#xff1a;攻击者盗用了你的身份&#xff0c;以你的名义发…

CPU,GPU,Memory调度

CPU&#xff0c;GPU&#xff0c;Memory调度 HDD&Memory&CPU调度机制(I/O硬件性能瓶颈) 图1. HDD&Memory&CPU调度图 CPU主要就是三部分&#xff1a;计算单元、控制单元和存储单元&#xff0c;其架构如下图所示&#xff1a; 图2. CPU微架构示意图 换一种CPU表…

[PyTorch] rnn,lstm,gru中输入输出维度

本文中的RNN泛指LSTM&#xff0c;GRU等等CNN中和RNN中batchSize的默认位置是不同的。 CNN中&#xff1a;batchsize的位置是position 0.RNN中&#xff1a;batchsize的位置是position 1.在RNN中输入数据格式&#xff1a; 对于最简单的RNN&#xff0c;我们可以使用两种方式来调用,…
最新文章