给定一串字符,不超过100个字符,可能包括括号、数字、字母、标点符号、空格,编程检查这一串字符中的( ) ,[ ],{ }是否匹配。
输入格式:
输入在一行中给出一行字符串,不超过100个字符,可能包括括号、数字、字母、标点符号、空格。
输出格式:
如果括号配对,输出yes,否则输出no。
#include<bits/stdc++.h>
using namespace std;
bool judge(char a,char b)
{
if((a=='{'&&b=='}')||(a=='['&&b==']')||(a=='('&&b==')'))
return true;
return false;
}
int main()
{
char a[100];
char c;
int i=0;
while(cin>>c)
{
if(c=='['||c=='{'||c=='(')
a[i++]=c;
if(c=='}'||c==']'||c==')')
{
if(judge(a[i-1],c))
i--;
else
{
cout<<"no";
return 0;
}
}
}
if(i==0)
cout<<"yes";
else
cout<<"no";
}
栈的思想,代码很简单。有什么问题可以留言。