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

[LeetCode] Valid Parentheses 验证括号

时间:2015-04-14 14:15:23      阅读:108      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!