首页 > 其他 > 详细

[leetcode]Valid Parentheses

时间:2015-01-24 01:32:05      阅读:286      评论:0      收藏:0      [点我收藏+]

Given a string containing just the characters ‘(‘‘)‘‘{‘‘}‘‘[‘ and ‘]‘, determine if the input string is valid.

The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are not.

#include <iostream>
#include <string>
#include <stack>
#include <map>
using namespace std;
class Solution {
private:
		map<char,char> pairs;
		stack<int> pstack;
public:
	Solution()
	{
		pairs[‘)‘] = ‘(‘;
		pairs[‘}‘] = ‘{‘;
		pairs[‘]‘] = ‘[‘;
	}
    bool isValid(string s) {
		int len = s.length();
		if(len%2)return false;
        int i = 0;
		map<char,char>::iterator it;
		char sen;
		for(i = 0; i < len; i++){
			it = pairs.find(s[i]);
			
			if(it == pairs.end()){
				pstack.push(s[i]);
				continue;
			}
			sen = it ->second;
			if(!pstack.empty()){
				char tmp = pstack.top();
				if(tmp == sen){
					pstack.pop();
				}else{
					return false;
				}
			}else{
				return false;
			}
		}
		if(pstack.empty())return true;
		return false;
    }
};
int main()
{
	Solution s = Solution();
	cout << s.isValid("[{}]{{}()}") << endl;
	return 0;
}

  

[leetcode]Valid Parentheses

原文:http://www.cnblogs.com/zhutianpeng/p/4245314.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!