NYOJ2(括号匹配)

简介: #include int main() { int z; scanf("%d",&z); while(z--) { char ch,s[10001]; int top=-1; while((ch=getchar())!='\n')//中间没有空格 {...
#include <stdio.h>
int main()
{
	int z;
	scanf("%d",&z);
	while(z--)
	{
		char ch,s[10001];
		int top=-1;
		while((ch=getchar())!='\n')//中间没有空格
		{
			if(ch==')' && top>=0 && s[top]=='(')//top>=0表明栈不空
				top--;
			else 
				if(ch==']' && top>=0 && s[top]=='[')
					top--;
				else 
					s[++top]=ch;
	}
		if(top==-1)
			puts("Yes");
		else
			puts("No");
	}
	return 0;
} 
//左括号的话入栈,右括号的话要么与栈顶配对要么错误 ,开始结束时栈要为空

 

#include<stdio.h>
#include<string.h>
char str[10001];
int main()
{
	int i,j,T;int top=-1,len;
	scanf("%d%*c",&T);
	while(T--)
	{
		top=0;
		memset(str,0,sizeof(str));
		scanf("%s",str);
		len=strlen(str);
		for(i=1;i<len;i++)
		{
			if(str[i]==')'&&str[top]=='('&&top!=-1)
				top--;
			else if(str[i]==']'&&str[top]=='['&&top!=-1)
				top--;
			else
				str[++top]=str[i];
		//	printf("%d     %d\n",i,top);
		}
		if(top==-1)
			puts("Yes");
		else
			puts("No");
		
	}
	return 0;
}

 

 

目录
相关文章
|
4月前
|
C++
【洛谷 P1739】表达式括号匹配 题解(栈)
该编程题目要求检查给定的包含字母、运算符和括号的表达式是否括号匹配。输入为一行表达式,以`@`结束。如果括号匹配,输出`YES`,否则输出`NO`。样例包括一个匹配和一个不匹配的表达式。解决方案是使用栈,遇到左括号入栈,遇到右括号时判断栈是否为空,栈空则输出`NO`,否则出栈。当读到`@`时,栈空则输出`YES`,否则输出`NO`。提供的AC代码使用C++实现,通过`stack`处理括号匹配。
59 0
|
C语言
next数组的两种求法详解及完整代码
求字符串的next数组: 方法一: 这里我们将next数组第1,2位分别设为0,1(还有-1,0这种设法,这里先将其设为0,1若有需要再减一即可) 后面求解每一位的next值时,根据前一位进行比较。 从第三位开始,将前一位与其next值对应的内容进行比较, 如果相等,则该位的next值就是前一位的next值加上1; 如果不等,向前继续寻找next值对应的内容来与前一位进行比较, 直到找到某个位上内容的next值对应的内容与前一位相等为止, 则这个位对应的值加上1即为需求的next值; 如果找到第一位都没有
357 0
next数组的两种求法详解及完整代码
|
5月前
|
C++
[C++/PTA] 括号匹配
[C++/PTA] 括号匹配
88 0
|
11月前
|
存储 算法 C语言
【C语言刷题】猜名次、猜凶手、杨辉三角、杨氏矩阵、字符串左旋、判断是否为左旋子串
【C语言刷题】猜名次、猜凶手、杨辉三角、杨氏矩阵、字符串左旋、判断是否为左旋子串
74 0
|
算法
next数组(详细求法)
next数组(详细求法)
177 0
剑指offer_递归与循环---扑克牌顺子
剑指offer_递归与循环---扑克牌顺子
47 0
|
机器学习/深度学习 算法 NoSQL
【基础算法】浅浅刷个小题 # 反转字符串 # 反转字符串 II # 三个数的最大乘积 #
【基础算法】浅浅刷个小题 # 反转字符串 # 反转字符串 II # 三个数的最大乘积 #
|
算法
括号匹配那个小题真不简单……
括号匹配那个小题真不简单……
140 0
括号匹配那个小题真不简单……
|
算法 C语言
每日算法刷题Day2-向上取整、三角形条件、字符串拼接匹配、三数排序思路
⭐每日算法题解系列文章旨在精选重点与易错的算法题,总结常见的算法思路与可能出现的错误,与笔者另一系列文章有所区别,并不是以知识点的形式提升算法能力,而是以实战习题的形式理解算法,使用算法。
218 0
每日算法刷题Day2-向上取整、三角形条件、字符串拼接匹配、三数排序思路
|
算法
51Nod 1277 字符串中的最大值(KMP,裸题)
1277 字符串中的最大值 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 一个字符串的前缀是指包含该字符第一个字母的连续子串,例如:abcd的所有前缀为a, ab, abc, abcd。
1054 0