首页 > 其他 > 详细

[LeetCode] Valid Parentheses 验证括号

时间:2015-04-14 14:14:43      阅读:126      评论: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.

 

这道题让我们验证输入的字符串是否为括号字符串,包括大括号,中括号和小括号。这里我们需要用一个栈,我们开始遍历输入字符串,如果当前字符为左半边括号时,则将其压入栈中,如果遇到右半边括号时,若此时栈为空,则直接返回false,如不为空,则取出栈顶元素,若为对应的左半边括号,则继续循环,反之返回false,代码如下:

 

class Solution {
public:
    bool isValid(string s) {
        stack<char> parentheses;
        for (int i = 0; i < s.size(); ++i) {
            if (s[i] == ( || s[i] == [ || s[i] == {) parentheses.push(s[i]);
            else {
                if (parentheses.empty()) return false;
                if (s[i] == ) && parentheses.top() != () return false;
                if (s[i] == ] && parentheses.top() != [) return false;
                if (s[i] == } && parentheses.top() != {) return false;
                parentheses.pop();
            }
        }
        return parentheses.empty();
    }
}; 

 

[LeetCode] Valid Parentheses 验证括号

原文:http://www.cnblogs.com/grandyang/p/4424587.html

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