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

#20 Valid Parentheses

时间:2015-04-23 21:31:47      阅读:127      评论: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.

本题是简单匹配问题,用stack最优。

我的代码:

class Solution {
public:
    bool isValid(string s) {
        stack<char> sign;
        for (string::const_iterator iter = s.begin(); iter != s.end(); ++iter){
            switch (*iter){
                case (:
                case {:
                case [:sign.push(*iter); break;
                case ):
                    if (sign.size()&&sign.top() == (){
                        sign.pop(); break;
                    }
                case }:
                    if (sign.size() && sign.top() == {){
                        sign.pop(); break;
                    }
                case ]:
                    if (sign.size() && sign.top() == [){
                        sign.pop(); break;
                    }
                    return false;
                default:break;
            }
        }
        if (sign.size())
            return false;
        else
            return true;
    }
};

 

#20 Valid Parentheses

标签:

原文地址:http://www.cnblogs.com/Scorpio989/p/4451713.html

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