关于括号匹配的问题及其源码
2016-04-13 19:12
429 查看
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
int main()
{
char **p,c;
int i,j,k,sum,n,l;
char *q;
char a[100]={0};
while(scanf("%d",&n)!=EOF){
p=(char**)malloc(n*sizeof(char*));
for(i=0;i<n;i++)
{
*(p+i)=(char*)malloc(100*sizeof(char));
scanf("%s",*(p+i));
}
for(i=0;i<n;i++)
{
l=0;
int flag=1;
l=strlen(*(p+i)) ;
memset(a,0,100);
q=&a[0];
for(j=0;j<l;j++)
{
switch(*(*(p+i)+j))
{
case '(':
*q=*(*(p+i)+j);
q=q+1;
break;
case '[':
*q=*(*(p+i)+j);
q=q+1;
break;
case '{':
*q=*(*(p+i)+j);
q=q+1;
break;
case ')':
if(q!=a&&*(q-1)=='('){
q--;
}
else
{
flag=0;
}
break;
case '}':
if(q!=a&&*(q-1)=='{'){
q--;
}
else
{
flag=0;
}
break;
case ']':
if(*(q-1)=='['&& q!=a ){
q--;
}
else
{
flag=0;
}
break;
}
}
if(q==a&&flag==1)
{printf("Yes\n");
}
else
{printf("No\n");
}
}
free(p);
}
return 0;
}
#include<stdlib.h>
#include<math.h>
#include<string.h>
int main()
{
char **p,c;
int i,j,k,sum,n,l;
char *q;
char a[100]={0};
while(scanf("%d",&n)!=EOF){
p=(char**)malloc(n*sizeof(char*));
for(i=0;i<n;i++)
{
*(p+i)=(char*)malloc(100*sizeof(char));
scanf("%s",*(p+i));
}
for(i=0;i<n;i++)
{
l=0;
int flag=1;
l=strlen(*(p+i)) ;
memset(a,0,100);
q=&a[0];
for(j=0;j<l;j++)
{
switch(*(*(p+i)+j))
{
case '(':
*q=*(*(p+i)+j);
q=q+1;
break;
case '[':
*q=*(*(p+i)+j);
q=q+1;
break;
case '{':
*q=*(*(p+i)+j);
q=q+1;
break;
case ')':
if(q!=a&&*(q-1)=='('){
q--;
}
else
{
flag=0;
}
break;
case '}':
if(q!=a&&*(q-1)=='{'){
q--;
}
else
{
flag=0;
}
break;
case ']':
if(*(q-1)=='['&& q!=a ){
q--;
}
else
{
flag=0;
}
break;
}
}
if(q==a&&flag==1)
{printf("Yes\n");
}
else
{printf("No\n");
}
}
free(p);
}
return 0;
}
相关文章推荐
- 使用Dreamweaver格式化HTML代码
- Android 从启动到程序运行发生的事情
- 高斯模糊效果实现方案及性能对比
- Android 事件流详解之View事件分发
- jboss jndi配置部分参数详解
- lightoj 1354 - IP Checking
- 团队计划会议(一)
- java jdbc工具类
- android stdio 1
- Python 2.7 解决写入文件的中文乱码问题
- mySQL数据库Sql语句执行效率检查--Explain命令
- 求一组数的第二小的数据
- SQL Server 2012数据库的一些操作语句
- python安装
- 国内DNS服务器地址
- Codeforces Beta Round #1
- ActiveMQ例子
- 大数加法
- 关于用程序模拟的随机分布
- 如何在Python中使用静态变量在计数