括号匹配的检验(数据结构实训)

题目:

括号匹配的检验
标准输入输出
题目描述:
采用栈实现,练习进栈入栈函数的编写.
输入:
输入的第一行包含一个数,n
n表示要用例的个数
接下来是n行由括号构成的字符串,包含‘(’、‘)’、‘[’、‘]’。

输出:
对每一测试用例,用一行输出结果,如果匹配,输出“YES”,否则输出“NO”

输入样例:
2
[([][]())]
)[]()

输出样例:
YES
NO

代码:

题目的左右小括号是中文的,但是使用应该是英文的,一开始我用方法一写没写出来,还以为是题目的问题,于是写了方法二,后来找到了方法一的错误,现在的方法一是正确的

方法一(普通方法):

import java.util.Scanner;
public class Xingyuxingxi {public static void main(String[] args) {int a;Scanner sc = new Scanner(System.in);String b;a = sc.nextInt();while (a-- != 0) {b = sc.next();int zxk = 0;int zzk = 0;int cnt=0;for (int i = 0; i < b.length()-1; i++) {if((b.charAt(i)=='('&&b.charAt(i+1)==']')||(b.charAt(i)=='['&&b.charAt(i+1)==')')){cnt=1;break;}}if(cnt==0) {for (int i = 0; i < b.length(); i++) {if (b.charAt(i) == '(') {zxk++;}if (b.charAt(i) == ')') {zxk--;}if (b.charAt(i) == '[') {zzk++;}if (b.charAt(i) == ']') {zzk--;}if (zxk < 0 || zzk < 0) {break;}}}if ( cnt == 0&&zxk == 0 && zzk == 0) {System.out.println("YES");} else {System.out.println("NO");}}}
}/*
当时卡在样例
(([))]
此时输出应该为NO
在我写栈方法时检查了出来
*/

方法二(栈):

import java.util.Scanner;
import java.util.Stack;public class Xingyuxingxi {public static void main(String[] args) {Stack<Character>zhan =new Stack<Character>();Scanner sc=new Scanner(System.in);int a=sc.nextInt();String b;while (a--!=0){b=sc.next();for (int i = 0; i <b.length() ; i++) {char s=b.charAt(i);if(i!=0&&((s==')'&&zhan.peek()=='(')||(s==']'&&zhan.peek()=='['))){zhan.pop();}else{zhan.push(s);}}if(zhan.isEmpty()){System.out.println("YES");}else{System.out.println("NO");}zhan.clear();}}
}
/*
peek()方法,调用栈顶元素
pop()方法,删除栈顶元素
isEmpty()方法,判断栈是否为空
clear()方法,清空栈
*/

 

 

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

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

相关文章

【PTA-C语言】编程练习4 - 数组Ⅱ

如果代码存在问题&#xff0c;麻烦大家指正 ~ ~有帮助麻烦点个赞 ~ ~ 编程练习4 - 数组Ⅱ&#xff08;8~15&#xff09; 7-8 2048游戏模拟&#xff08;2&#xff09;--向下移位合并&#xff08;分数 15&#xff09;7-9 二进制数据转换成十进制数&#xff08;分数 15&#xff09…

嵌入式系统

嵌入式系统 目前国内一个普遍认同的嵌入式系统定义是&#xff1a;以应用为中心、以计算机技术为基础&#xff0c;软件硬件可裁剪&#xff0c;适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。&#xff08;引用自《嵌入式系统设计师教程》&#xff09; …

48.Go简要实现令牌桶限流与熔断器并集成到Gin框架中

文章目录 一、简介二、限流器与熔断器在微服务中的作用1.限流器 &#xff1a; 对某个接口单位时间内的访问量做限制2. 熔断器&#xff1a;当服务连续报错&#xff0c;超过一定阈值时&#xff0c;打开熔断器使得服务不可用 三、具体实现1. 限流器实现逻辑&#xff08;以令牌桶算…

算法训练营Day9(字符串,以后补KMP)

总结 卡哥总结 代码随想录 (programmercarl.com) 我的总结 java字符串 字符串&#xff0c;java中String字符串是不可变的&#xff0c;所以一些操作需要转化为字符数组来做&#xff0c; str.toCharArray 类型是char [] 然后针对库函数这里&#xff0c;我个人认为仅仅调…

SQL Server——权限管理

一。SQL Server的安全机制 SQL Server 的安全性是建立在认证和访问许可两种安全机制之上的。其中&#xff0e;认证用来确定登录Sal Server 的用户的登录账户和密码是否正确&#xff0e;以此来验证其是否具有连接SQL Server 的权限;访问许可用来授予用户或组能够在数据库中执行哪…

软件设计师中级软考资料大全(一次过)

2023年下半年第一次参加软件设计师中级软考就过了&#xff0c;整理了下自己的备考资料和学习笔记&#xff0c;有需要可以下载 1.软件设计师中级软考全套官方参考资料及辅导书 软件设计师中级软考全套官方参考资料及辅导书 2.软件设计师中级软考历年真题解析(2004-2023) 软…

在springboot中引入参数校验

一、概要 一般我们判断前端传过来的参数&#xff0c;需要对某些值进行判断&#xff0c;是否满足条件。 而springboot相关的参数校验注解&#xff0c;可以解决我们这个问题。 二、快速开始 首先&#xff0c;我用的springboot版本是 3.1.5 引入参数校验相关依赖 <!--1…

2023五岳杯量子计算挑战赛数学建模思路+代码+模型+论文

目录 计算力网络&#xff08;CPN&#xff09;是一种新型的信息基础设施&#xff0c;完整论文代码见文末 问题描述 2.1 问题1 2.2 问题2 2.3 问题3 问题1的解答过程&#xff1a; 问题3的解答过程&#xff1a; 决策优化应用场景&#xff1a;人工智能模型超参数调优 背景信…

最新V2Board 面板搭建教程(一)

1、购买服务器 2、解析域名并放行端口&#xff0c;Cloudflare官网&#xff1a;【点击进入】 更多的防火墙设置可查看此文章&#xff1a;【点击进入】 firewall-cmd --zonepublic --add-port端口号/tcp --permanent 顺哥博客 3、安装宝塔面板国际版&#xff0c;官网地址&am…

ELK(四)—els基本操作

目录 elasticsearch基本概念RESTful API创建非结构化索引&#xff08;增&#xff09;创建空索引&#xff08;删&#xff09;删除索引&#xff08;改&#xff09;插入数据&#xff08;改&#xff09;数据更新&#xff08;查&#xff09;搜索数据&#xff08;id&#xff09;&…

Kafka性能调优:高吞吐、低延迟的数据流

Apache Kafka作为一种高性能、分布式流处理平台&#xff0c;对于实时数据的处理至关重要。本文将深入讨论Kafka性能调优的关键策略和技术&#xff0c;通过丰富的示例代码为大家提供实际操作指南&#xff0c;以构建高吞吐、低延迟的数据流系统。 Broker 配置的优化 首先&#…

Cisco Packet Tracer配置命令——交换机篇

交换机VLAN配置 在简单的网络环境中&#xff0c;当交换机配置完端口后&#xff0c;即可直接应用&#xff0c;但若在复杂或规模较大的网络环境中&#xff0c;一般还要进行VLAN的规划&#xff0c;因此在交换机上还需进行 VLAN 的配置。交换机的VLAN配置工作主要有VLAN的建立与删…

【银行测试】第三方支付平台业务流,功能/性能/安全测试方法...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、第三方支付平台…

dorker使用一

1.1&#xff0c;先卸载老的 yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine1.2 ,安装准备 安装所需的软件包。yum-utils 提供了 yum-config-manager &#xff0c;并且 devic…

DSP外部中断笔记

中断原理 三部分 注意 &#xff0c;外部中断使能&#xff0c;PIE使能&#xff0c;CPU中断使能 外部中断有7个&#xff0c;PIE有12组&#xff0c;一个组有8个中断复用。只有一个CPU中断可执行。 外部中断原理 1、外部中断概述 外部中断结构图 外部中断XINT1对应的是0到31GPI…

在vue中深度选择器的使用

一、为什么要使用深度选择器 在vue中&#xff0c;当我们使用了第三方库中的组件时&#xff0c;想要更改一些样式&#xff0c;达到我们想要的效果&#xff0c;由于scoped的影响直接编写同名样式时&#xff0c;是覆盖不了组件内的样式的。 为了达到我们想要的效果&#xff0c;…

区块链实验室(28) - 拜占庭节点劫持区块链仿真

在以前的FISCO环境中仿真拜占庭节点攻击区块链网络。该环境共有100个节点&#xff0c;采用PBFT作为共识机制&#xff0c;节点编号分别为&#xff1a;Node0&#xff0c;Node&#xff0c;… &#xff0c;Node99。这100个节点的前2010区块完全相同&#xff0c;自区块2011开始分叉。…

Pytest+Allure生成自动化测试报告!

前言 在自动化测试中&#xff0c;有unittestHTMLTestRunner自动化测试报告&#xff0c;但是生成的测试报告不够美观详细&#xff0c;今天我们来学习一下PytestAllure生成自动化测试报告。 一&#xff1a;安装python中的allure依赖库 在dos窗口中&#xff0c;输入下面三个命令…

如何将idea中导入的文件夹中的项目识别为maven项目

问题描述 大家经常遇到导入某个文件夹的时候&#xff0c;需要将某个子文件夹识别为maven项目 解决方案

计算整数各位数字之和 C语言xdoj29

时间限制: 1 S 内存限制: 1000 Kb 问题描述: 假设n是一个由最多9位数字&#xff08;d9, …, d1&#xff09;组成的正整数。编写一个程序计算n的每一位数字之和 输入说明: 输入数据为一个正整数n 输出说明: 对整数n输出它的各位数字之和后换行 输入样例: …