leetcode 20. 有效的括号(Valid Parentheses)

题目描述:

给定一个只包括 '('')''{''}''['']' 的字符串,判断字符串是否有效。

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。

注意空字符串可被认为是有效字符串。

示例 1:


    输入: "()"
    输出: true

示例 2:


    输入: "()[]{}"
    输出: true

示例 3:


    输入: "(]"
    输出: false

示例 4:


    输入: "([)]"
    输出: false

示例 5:

 
    输入: "{[]}"
    输出: true

算法:


class Solution {
public:
    bool isValid(string s) {
        vector mp(128, 0);
        mp['('] = ')';
        mp['{'] = '}';
        mp['['] = ']';
        mp[')'] = ')';
        mp['}'] = '}';
        mp[']'] = ']';
        stack stk;
        for(char ch : s){
            if(stk.empty() || stk.top() != ch){
                stk.push(mp[ch]);
            }else{
                stk.pop();
            }
        }
        return stk.empty();
    }
};
posted @ 2019-03-18 14:59  zhanzq1  阅读(75)  评论(0)    收藏  举报