1355:字符串匹配问题(strs)


【题目描述】

字符串中只含有括号 (),[],<>,{},判断输入的字符串中括号是否匹配。如果括号有互相包含的形式,从内到外必须是<>,(),[],{},例如。输入: [()] 输出:YES,而输入([]),([)]都应该输出NO

【输入】

第一行为一个整数n">nn,表示以下有多少个由括好组成的字符串。接下来的n">nn行,每行都是一个由括号组成的长度不超过255">255255的字符串。

【输出】

在输出文件中有n">nn行,每行都是YESNO

【输入样例】

5
{}{}<><>()()[][]
{{}}{{}}<<>><<>>(())(())[[]][[]]
{{}}{{}}<<>><<>>(())(())[[]][[]]
{<>}{[]}<<<>><<>>>((<>))(())[[(<>)]][[]]
><}{{[]}<<<>><<>>>((<>))(())[[(<>)]][[]]

【输出样例】

YES
YES
YES
YES
NO

#include 
using namespace std;

const int N = 255;
char a[N] = {0};

int main()
{
    int n;
    cin >> n;
    char ch = cin.get();//return char
    //cout<,(),[],{}
            //cin>>ch;//none space
            ch = cin.get();
            //cout<':
                    jian--; //尖括号
                    if (a[--top] != '<') {
                        //cout<<">:"<> a; //remove a line
                        ch = cin.get();//return char
                        ch = '@';
                    }
                    break;
                case '(':
                    a[top++] = ch;
                    xiao++;
                    break;
                case ')':
                    xiao--; //小括号
                    if (a[--top] != '(' || jian != 0) {
                        //cout<<"):"<> a; //remove a line
                        ch = cin.get();//return char
                        ch = '@';
                    }
                    break;
                case '[':
                    a[top++] = ch;
                    zhong++;
                    break;
                case ']':
                    zhong--; //中括号
                    if (a[--top] != '[' || jian != 0 || xiao != 0) {
                        //cout<<"]:"<> a; //remove a line
                        ch = cin.get();//return char
                        ch = '@';
                    }
                    break;
                case '{':
                    a[top++] = ch;
                    da++;
                    break;
                case '}':
                    da--; //大括号
                    if (a[--top] != '{' || jian != 0 || xiao != 0 || zhong != 0) {
                        //cout<<"}:"<> a; //remove a line
                        ch = cin.get();//return char
                        ch = '@';
                    }
                    break;
                case '@':
                default:
                    //cout<<"@:"<
						  
					  

相关