NYOJ2括号配对问题
括号配对是最基本的栈的问题,它是栈入门的经典题目,思路是,如果是左括号直接进栈,如果是右括号,这时就要比较栈顶的元素与他是否匹配,如果匹配则出栈,否则进栈,下面是代码的实现:
#include <stdio.h>
#include <stdlib.h>
typedef struct stack{//定义栈来存储括号
char ch;
struct stack *next;
}link_stack;
link_stack * init_link_stack();
link_stack * push_stack(link_stack *top, char ch);
link_stack * pop_stack(link_stack *top);
int main()
{
int n;
scanf("%d", &n);
getchar();
while(n --)
{
link_stack * top;
top = init_link_stack();//初始化top指针
char ch[];
scanf("%s", ch); int i = ;
while(ch[i] != '\0')//判断读到结束符
{
if(((ch[i] == ']') && (top -> ch == '['))||((ch[i] == ')') &&(top -> ch == '(')))//如果将要进栈的是右括号,判断栈顶元素是否为左括号,如果是就弹出
top = pop_stack(top);
else
top = push_stack(top, ch[i]);//否则压栈
i ++;
}
if(top -> ch == '')//判断栈是否为空
printf("Yes\n");
else
printf("No\n");
}
return ;
} link_stack * init_link_stack()//初始化栈函数
{
link_stack *node;
node = (link_stack *) malloc(sizeof(link_stack));
node -> next = NULL;
node ->ch = '';
return node;
}
link_stack * push_stack(link_stack *top, char ch)//入栈函数
{
link_stack *node;
node = init_link_stack();
node -> ch = ch;
node -> next = top;
top = node;
return top;
}
link_stack * pop_stack(link_stack *top)//出栈函数
{
link_stack *node;
if(top -> next == NULL)
return top;
else
{
node = top;
top = top -> next;
free(node);
return top; } }
NYOJ2括号配对问题的更多相关文章
- NYOJ2—括号配对问题
括号配对问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=1 ...
- NYOJ1——A+B Problem NYOJ2——括号配对问题
A+B Problem 时间限制:3000 ms | 内存限制:65535 KB 难度:0 描述:此题为练手用题,请大家计算一下a+b的值 输入:输入两个数,a,b 输出:输出a+b的值 样 ...
- NYOJ2 括号配对问题
括号配对问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=1 ...
- NYOJ-2 括号配对问题 -- 数据结构_堆栈
以前做过的,现在整理一下,主要是堆栈的使用 1.碰到左括号就入栈,碰到右括号就从栈里弹出一个和当前比配,匹配失败就肯定是NO了; 2.如果右括号弹栈的时候栈空,则说明之前没有和右括号匹配的左括号了,这 ...
- 括号配对问题--nyoj-2(栈)
括号配对问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=10 ...
- ACM:UESTC - 649 括号配对问题 - stack
UESTC - 649 括号配对问题 Time Limit: 1000MS Memory Limit: 65535KB 64bit IO Format: %lld & %llu ...
- 括号配对问题_栈<stack>
问题 A: 括号配对问题 时间限制: 3 Sec 内存限制: 128 MB提交: 3 解决: 2[提交][状态][讨论版] 题目描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行 ...
- NYOJ之括号配对问题
括号配对问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N&l ...
- ACM 括号配对问题
括号配对问题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 现在,有一行括号序列,请你检查这行括号是否配对. 输入 第一行输入一个数N(0<N<=1 ...
随机推荐
- WAMP集成环境更改web根目录
使用WAMP集成环境,如何更改web根目录 做php开发使用WAMP集成环境的同学大部分有过这样的经历:如果你试图修改web根目录,那么你肯定会想到要修改apache/apache2.2.11/con ...
- 如何使用ASP.NET Web API OData在Oracle中使用Entity Framework 6.x Code-First方式开发 OData V4 Service
环境: Visual Studio 2013 + .Net Framework 4.5.2 1.新建项目 2.安装OData,ODP.NET 安装的包: 下面是部分代码: using System; ...
- 小A项目为什么加班
1.负责架构搭建的人搭建完成架构后,没有进行落地性验证:导致真正要用到的时候才发现spring没有配置:需要对架构人员的进度和内容进行跟踪,在跟踪进度的时候需要强调落地性: 2.负责架构搭建的人没有提 ...
- 【转】近百个Android优秀开源项目
近百个Android优秀开源项目 Android开发又将带来新一轮热潮,很多开发者都投入到这个浪潮中去了,创造了许许多多相当优秀的应用.其中也有许许多多的开发者提供了应用开源项目,贡献出他们的智慧 ...
- MATLAB中多行注释的三种方法
MATLAB中多行注释的三种方法 A. %{ 若干语句 %} B. 多行注释: 选中要注释的若干语句, 编辑器菜单Text->Comment, 或者快捷键Ctrl+R 取消注释: 选中要取消注释 ...
- K Smallest Sums
uva11997:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_prob ...
- Lucky and Good Months by Gregorian Calendar(模拟)
http://poj.org/problem?id=3393 好大的一道模拟题,直接当阅读理解看了.下面是大神写的题意,解释的好详细. 定义: Goog month : 该月第一个工作日为星期一的月份 ...
- 图论(二分图最大权独立点集):COGS 2051. 王者之剑
2051. 王者之剑 ★★★☆ 输入文件:Excalibur.in 输出文件:Excalibur.out 简单对比 时间限制:1 s 内存限制:256 MB [题目描述] 这是在阿尔托 ...
- poj 2408 Apple Tree
http://poj.org/problem?id=2486 典型的回溯题目:特别是状态方程用三维的来标记是否要走回路. 题意:一颗树,n个点(1-n),n-1条边,每个点上有一个权值,求从1出发,走 ...
- Unable to load native-hadoop library解决思路
最近试着搭建Hadoop,我使用的操作系统是Centos6.5,Hadoop版本是2.6.0. 在安装过程中总是出现:WARN util.NativeCodeLoader: Unable to loa ...