aboutsummaryrefslogtreecommitdiff
path: root/rust/matching-brackets/src/lib.rs
blob: 03e39ca3c77543b64f1d118b554b5933aa1adbd7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
pub fn brackets_are_balanced(string: &str) -> bool {
    let mut stack = vec![];
    for c in string.chars() {
        match c {
            '(' => stack.push(((c as u8) + 1) as char),
            '[' | '{' => stack.push(((c as u8) + 2) as char),
            ')' | ']' | '}' if stack.pop() != Some(c) => return false,
            _ => ()
        }
    }
    stack.is_empty()
}