Skip to main content
Back to problems
#20
Easy Algorithms

Valid parentheses

String Stack
43.7% acceptance
Mar 2, 2026
27628
1989
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. //

Solution

Rust
Time O(n)
Space O(n)
LeetCode
solution.rs
impl Solution {
  pub fn is_valid(s: String) -> bool {
    let mut stack = Vec::new();
    for c in s.chars() {
      match c {
        '(' | '[' | '{' => stack.push(c),
        ')' => if stack.pop() != Some('(') { return false; },
        ']' => if stack.pop() != Some('[') { return false; },
        '}' => if stack.pop() != Some('{') { return false; },
        _ => {}
      }
    }
    stack.is_empty()
  }
}