数据结构实验之栈四:括号匹配
2016-08-02 18:36
183 查看
数据结构实验之栈四:括号匹配
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
给你一串字符,不超过50个字符,可能包括括号、数字、字母、标点符号、空格,你的任务是检查这一串字符中的( ) ,[ ],{ }是否匹配。输入
输入数据有多组,处理到文件结束。输出
如果匹配就输出“yes”,不匹配输出“no”示例输入
sin(20+10){[}]
示例输出
yesno
提示
来源
ma6174示例程序
[cpp] view
plain copy
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i,j,n,l;
char s[150],p[150];
while(gets(s)!=NULL)
{
n=strlen(s);
j=0; //标示符号
l=1;
for(i=0; i<n; i++)
{
if(s[i]=='{'||s[i]=='('||s[i]=='[')
{
p[j++]=s[i];
}
if(s[i]==')')
{
if(j==0)
{
l=0;
break;
}
if(j>0&&p[j-1]=='(') //与上一个元素比较
{
j=j-1;
}
else if(j>0&&p[j-1]!='(')
{
l=0;
break;
}
}
if(s[i]==']')
{
if(j==0)
{
l=0;
break;
}
if(j>0&&p[j-1]=='[')
{
j=j-1;
}
else if(j>0&&p[j-1]!='[')
{
l=0;
break;
}
}
if(s[i]=='}')
{
if(j==0)
{
l=0;
break;
}
if(j>0&&p[j-1]=='{')
{
j=j-1;
}
else if(j>0&&p[j-1]!='{')
{
l=0;
break;
}
}
}
if(l==0||j>0)
printf("no\n");
else if(j==0)
printf("yes\n");
}
return 0;
}
相关文章推荐
- [置顶] Python学习笔记(三)-- 数据结构
- 数据结构实验之栈三:后缀式求值
- Leetcode 84. Largest Rectangle in Histogram
- 数据结构2_160802有头单向不循环
- 数据结构实验之栈七:出栈序列判定
- 数据结构实验之栈一:进制转换
- 【看书】邻接表的创建与使用
- 华为OJ—扑克牌大小
- 数据结构实验之队列一:排队买饭
- 数据结构啊----线性表的练习题
- sdut oj2135 数据结构实验之队列一排队买饭
- Redis五种数据结构简介
- 数据结构——数组
- STL关联式容器——set和map
- 队列——解密QQ号
- SDUT2135数据结构实验之队列一:排队买饭(队列)
- 数据结构实验之栈七:出栈序列判定
- 数据结构——Stack
- 数据结构实验之栈六:下一较大值(二)
- 《数据结构》初学者笔记