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.