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:
- Open brackets must be closed by the same type of brackets.
- 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的主要内容,如果未能解决你的问题,请参考以下文章
[LeetCode]20. Valid Parentheses
[LeetCode]20 Valid Parentheses 有效的括号
Leetcode 20. Valid Parentheses