#+ANKI_DECK: study_deck_02 * TODO 0020. Valid Parentheses :easy: :PROPERTIES: :NEETCODE: [[file:../../roadmap.org::*0020. Valid Parentheses][0020. Valid Parentheses]] :END: Given a string ~s~ 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. - Every close bracket has a corresponding open bracket of the same type. *Example 1:* *Input:* s = "()" *Output:* true *Example 2:* *Input:* s = "()[]{}" *Output:* true *Example 3:* *Input:* s = "(]" *Output:* false *Example 4:* *Input:* s = "([])" *Output:* true *Example 5:* *Input:* s = "([)]" *Output:* false *Constraints:* - ~1 <= s.length <= 10^{4}~ - ~s~ consists of parentheses only ~'()[]{}'~. ** TODO Approach Write your approach here. ** TODO Python #+begin_src python class Solution: def isValid(self, s: str) -> bool: #+end_src ** TODO C++ #+begin_src cpp class Solution { public: bool isValid(string s) { } }; #+end_src