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

Leetcode: Valid Parentheses 有效的括号匹配

时间:2014-07-01 21:24:05      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   for   

Valid Parentheses

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

class Solution {
public:
    bool isValid(string s) {
        stack<char> stk;
        stk.push(#);
        for (int i = 0; i < s.size(); ++i) {
            if (isLeft(s.at(i))) {
                stk.push(s.at(i));
            } else {
                if (isPair(stk.top(), s.at(i))) {
                    stk.pop();
                } else {
                    return false;
                }
            }
        }
        return stk.top() == #;
    }
    
    bool isLeft(char c) {
        if (c == ( || c == { || c == [) {
            return true;
        } else {
            return false;
        }
    }
    
    bool isPair(char a, char b) {
         return (a == ( && b == )) || (a == { && b == }) || (a == [ && b == ]);
    }
};

 

Leetcode: Valid Parentheses 有效的括号匹配,布布扣,bubuko.com

Leetcode: Valid Parentheses 有效的括号匹配

标签:style   blog   http   color   os   for   

原文地址:http://www.cnblogs.com/wwwjieo0/p/3816827.html

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