码迷,mamicode.com
首页 > 其他好文 > 详细

uva 673 - Parentheses Balance

时间:2014-08-10 18:21:20      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   strong   for   

  Parentheses Balance 

You are given a string consisting of parentheses () and []. A string of this type is said to be correct:

(a)
if it is the empty string
(b)
if A and B are correct, AB is correct,
(c)
if A is correct, (A) and [A] is correct.

Write a program that takes a sequence of strings of this type and check their correctness. Your program can assume that the maximum string length is 128.

 

Input 

The file contains a positive integer n and a sequence of n strings of parentheses () and [], one string a line.

 

Output 

A sequence of Yes or No on the output file.

 

Sample Input 

 

3
([])
(([()])))
([()[]()])()

 

Sample Output 

Yes
No
Yes

#include <iostream>
#include <stack>
#include <cstring>
#include <cstdio>
#include <string>
#include <algorithm>
#include <queue>
#include <set>
#include <map>
#include <fstream>
#include <stack>
#include <list>

using namespace std;
/*

*/
#define ms(arr, val) memset(arr, val, sizeof(arr))
#define N 500
#define INF 0x3fffffff
#define vint vector<int>
#define sint set<int>
#define mint map<int, int>
#define lint list<int>
#define sch stack<char>
char s[N];
sch sc;
int main()
{
    int n;
    bool tag;
    cin >> n;
    getchar();
    while (n--)
    {
        tag = true;
        while (!sc.empty())
        {
            sc.pop();
        }
        gets(s);
        for (int i = 0; s[i]; i++)
        {
            if (s[i] == ( || s[i] == [)
            {
                sc.push(s[i]);
            }
            else
            {
                if (!sc.empty())
                {
                    char ch = sc.top();
                    sc.pop();
                    if ((s[i] == ) && ch == () || (s[i] == ] && ch == [))
                    {
                        continue;
                    }
                }
                tag = false;
                break;
            }
        }
        if (!sc.empty())
        {
            tag = false;
        }
        cout << (tag ? "Yes" : "No") << endl;
        
    }
    return 0;
}

 

uva 673 - Parentheses Balance,布布扣,bubuko.com

uva 673 - Parentheses Balance

标签:style   blog   http   color   os   io   strong   for   

原文地址:http://www.cnblogs.com/jecyhw/p/3902987.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!