Rust Bracket
fn bracket(s: &str) -> i64 {
    let mut stack = Vec::new();
    for c in s.chars() {
        match c {
            ')' => {
                if stack.pop() != Some('(') {
                    return 0;
                }
            }
            ']' => {
                if stack.pop() != Some('[') {
                    return 0;
                }
            }
            '}' => {
                if stack.pop() != Some('{') {
                    return 0;
                }
            }
            _ => stack.push(c),
        }
    }

    if stack.is_empty() { 1 } else { 0 }
}

This uses a simple stack approach: open brackets go in, matching closing brackets pop them out.