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

leetcode-20 Valid Parentheses

时间:2018-11-03 14:07:47      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:false   solution   出栈   als   determine   ons   strong   char   example   

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

标签:false   solution   出栈   als   determine   ons   strong   char   example   

原文地址:https://www.cnblogs.com/tingweichen/p/9900308.html

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