括号配对问题 nyoj 2
来源:互联网 发布:coc女武神升级数据 编辑:程序博客网 时间:2024/06/15 06:13
括号配对问题
时间限制:3000 ms | 内存限制:65535 KB
难度:3
- 描述
- 现在,有一行括号序列,请你检查这行括号是否配对。
- 输入
- 第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有"[","]","(",")"四种字符
- 输出
- 每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No
- 样例输入
3[(])(])([[]()])
- 样例输出
NoNoYes
- //栈 的 应用。 栈的 特点,自动分配 连续的空间,先进后出。
01.
#include <stdio.h>
02.
int
main()
03.
{
04.
char
a[10000],x[10000];
05.
int
t;
06.
scanf
(
"%d"
,&t);
07.
getchar
();
08.
while
(t--)
09.
{
10.
gets
(a);
11.
int
i,top;
12.
char
c;
13.
top=-1; //初始化栈
14.
for
(i=0;a[i]!=
'\0'
;i++)
15.
{
16.
if
(a[i]==
'('
||a[i]==
'['
)
17.
{
18.
top++;
19.
x[top]=a[i];
20.
}
21.
else
22.
{
23.
24.
if
(top==-1) // 判断栈是否为空
25.
{
26.
printf
(
"No\n"
);
27.
break
;
28.
29.
}
30.
31.
else
32.
{
33.
c=x[top];
34.
if
(c==
'('
&&a[i]==
')'
||c==
'['
&&a[i]==
']'
) // 判断是否 匹配
35.
top--;
36.
else
37.
{
38.
printf
(
"No\n"
);
39.
break
;
40.
}
41.
}
42.
}
43.
44.
}
45.
46.
47.
if
(a[i]==
'\0'
)
48.
{
49.
if
(top==-1)
50.
printf
(
"Yes\n"
);
51.
else
52.
printf
(
"No\n"
);
53.
}
54.
55.
56.
57.
}
58.
return
0;
59.
60.
}
0 0
- NYOJ 2 括号配对问题
- NYoj 2 括号配对问题
- NYOJ-2:括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2--括号配对问题
- nyoj-2-括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- NYoj 2 括号配对问题
- NYOJ 2 括号配对问题
- NYOJ-2 括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- K - Kinds of Fuwas----(2015 summer training #4 (Qualifying))
- webservice
- 定义和使用结构体变量
- Android API Guides – Introduction to Android
- CRC
- 括号配对问题 nyoj 2
- 【iOS学习笔记】Category和Extension
- php中的单例模式实现
- leetcode_Invert Binary Tree
- 快速幂取模 ---> (a^b)%c
- 进程间通信-队列
- 关于51单片机IO引脚的驱动能力与上拉电阻
- 设计模式—简单工厂模式
- 基于mysql的程序抛异常 Unable to find the requested .Net Framework Data Provider. It may not be installed