Skip to content

Latest commit

 

History

History
81 lines (61 loc) · 2.31 KB

README.md

File metadata and controls

81 lines (61 loc) · 2.31 KB

Given a string s 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.

 

Example 1:

Input: s = "()"
Output: true

Example 2:

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

Example 3:

Input: s = "(]"
Output: false

Example 4:

Input: s = "([)]"
Output: false

Example 5:

Input: s = "{[]}"
Output: true

 

Constraints:

  • 1 <= s.length <= 104
  • s consists of parentheses only '()[]{}'.

Related Topics:
String, Stack

Similar Questions:

Solution 1.

// OJ: https://leetcode.com/problems/valid-parentheses/
// Author: github.com/lzl124631x
// Time: O(N)
// Space: O(N)
class Solution {
public:
    bool isValid(string s) {
        stack<char> stk;
        for (char c : s) {
            if (c == '(' || c == '{' || c == '[') stk.push(c);
            else if (stk.empty() || (c == ')' && stk.top() != '(') || (c == '}' && stk.top() != '{')
                || (c == ']' && stk.top() != '[')) return false;
            else stk.pop();
        }
        return stk.empty();
    }
};