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

Brackets! Brackets!

时间:2015-04-11 13:23:25      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:acm   c++   杭电   算法   编程   

Brackets! Brackets!
Time Limit: 1000 MS Memory Limit: 65536 K
Total Submit: 698(239 users) Total Accepted: 272(210 users) Rating: 技术分享技术分享 Special Judge: No
Description

There are six kinds of brackets: ‘(‘, ‘)’, ‘[‘, ‘]’, ‘{’, ‘}’. dccmx’s girl friend is now learning java programming language, and got mad with brackets! Now give you a string of brackets. Is it valid? For example: “(([{}]))” is valid, but “([)]” is not.

Input

First line contains an integer T (T<=10): the number of test case.

Next T lines, each contains a string: the input expression consists of brackets.

The length of a string is between 1 and 100.

Output

For each test case, output “Valid” in one line if the expression is valid, or “Invalid” if not.

Sample Input
2
{{[[(())]]}}
({[}])
Sample Output
Valid
Invalid
 
注意()()这种情况合法。()())这种情况会令flag==0;()(这种情况会令栈为空。
 
如果出现一个右括号,那么在栈非空的情况下,如果合法必然栈顶元素和这个右括号相匹配。那么在这两个条件都不能满足的条件下flag==0;
#include<iostream>
#include<string.h>
#include<stack>
using namespace std;
int main()
{
	int T;char gq[101];
	cin>>T;
	while(T--)
	{
		stack<char>ls;
		scanf("%s",&gq);
		int flag=1;
		for(int i=0;i<strlen(gq);i++)
		{
			if(gq[i]=='('||gq[i]=='{'||gq[i]=='[')
			ls.push(gq[i]);
		else
		    {
			if(gq[i]==')')
			{
				if(!ls.empty()&&ls.top()=='(')
				{
					ls.pop();
				}
				else
				{
					flag=0;
					break;
				}
			}
			else if(gq[i]=='}')
			{
				if(!ls.empty()&&ls.top()=='{')

				{
					ls.pop();
				}
				else
				{
					flag=0;
					break;
				}
			}
			else if(gq[i]==']')
			{
				if(!ls.empty()&&ls.top()=='[')

				{
					ls.pop();
				}
				else 
				{
					flag=0;
					break;
				}
			}
		  }
		}
		if(!ls.empty()||flag==0)
			cout<<"Invalid"<<endl;
		else
			cout<<"Valid"<<endl;
	}
	return 0;
}

Brackets! Brackets!

标签:acm   c++   杭电   算法   编程   

原文地址:http://blog.csdn.net/lsgqjh/article/details/44993621

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