leetcode-20 Valid Parentheses

Posted tingweichen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-20 Valid Parentheses相关的知识,希望对你有一定的参考价值。

Given a string containing just the characters ‘(‘, ‘)‘, ‘{‘, ‘}‘, ‘[‘ and ‘]‘, determine if the input string is valid.

An input string is valid if:

  1. Open brackets must be closed by the same type of brackets.
  2. Open brackets must be closed in the correct order.

Note that an empty string is also considered valid.

Example 1:

Input: "()"
Output: true

Example 2:

Input: "()[]{}"
Output: true

Example 3:

Input: "(]"
Output: false

Example 4:

Input: "([)]"
Output: false

Example 5:

Input: "{[]}"
Output: true
想法:因为最近在学习栈的使用,因而这题使用栈来解决。遍历字符串,如果匹配到相应的(,{,[.就将对应的).],}压入栈中。
如果没有匹配到上述字符,就出栈,看栈顶元素是否与对应的字符相等。
class Solution {
public:
    bool isValid(string s) {
        
        std:stack<char> st;
        for(char i : s){
            
            if(i == (){
                st.push());
            }else if(i == [){
                st.push(]);
            }else if(i == {){
                st.push(});
            }
            
            else {
                if(st.empty()){
                    return false;
                }else{
                    char top = st.top();
                    st.pop();
                    if(top != i){
                        return false;
                    }
                }
            }
        }
        return st.empty();
    }
};

以上是关于leetcode-20 Valid Parentheses的主要内容,如果未能解决你的问题,请参考以下文章

leetcode20. Valid Parentheses

[LeetCode]20. Valid Parentheses

[LeetCode]20 Valid Parentheses 有效的括号

Leetcode 20. Valid Parentheses

LeetCode 20. Valid Parentheses

leetcode-20 Valid Parentheses