首页 > 代码库 > 括号配对问题(南阳2)
括号配对问题(南阳2)
//括号匹配的检验,运用栈的思想,构造栈不要想的太复杂,在此题中其实也就是一个数组。
/*书上所说的可用“期待的急迫程度”,例如考虑下列括号序列:
【(【】【】)】问括号是否匹配
*/
#include<cstdio>
#include<cstring>
int main()
{
int top,i;
char a[1010],b[1010];
while(scanf("%s",a)!=EOF)
{
top=1; //top所指向b数组下标的下一位
b[top++]=a[0];
for(i=1; i<strlen(a); i++)
{
if(a[i]==‘(‘||a[i]==‘[‘) //此种情况,进栈
b[top++]=a[i];
else if(a[i]==‘)‘&&b[top-1]==‘(‘) //出栈,其实也就是对b数组的覆盖
top--;
else if(a[i]==‘]‘&&b[top-1]==‘[‘)
top--;
else
{ //剩下的两种情况都要进栈
b[top++]=a[i];
}
}
if(top==1)
printf("括号匹配!\n");
else
printf("括号不匹配!!!\n");
}
return 0;
}
/*书上所说的可用“期待的急迫程度”,例如考虑下列括号序列:
【(【】【】)】问括号是否匹配
*/
#include<cstdio>
#include<cstring>
int main()
{
int top,i;
char a[1010],b[1010];
while(scanf("%s",a)!=EOF)
{
top=1; //top所指向b数组下标的下一位
b[top++]=a[0];
for(i=1; i<strlen(a); i++)
{
if(a[i]==‘(‘||a[i]==‘[‘) //此种情况,进栈
b[top++]=a[i];
else if(a[i]==‘)‘&&b[top-1]==‘(‘) //出栈,其实也就是对b数组的覆盖
top--;
else if(a[i]==‘]‘&&b[top-1]==‘[‘)
top--;
else
{ //剩下的两种情况都要进栈
b[top++]=a[i];
}
}
if(top==1)
printf("括号匹配!\n");
else
printf("括号不匹配!!!\n");
}
return 0;
}
括号配对问题(南阳2)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。