diff options
Diffstat (limited to 'rust/matching-brackets/src')
| -rw-r--r-- | rust/matching-brackets/src/lib.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/rust/matching-brackets/src/lib.rs b/rust/matching-brackets/src/lib.rs new file mode 100644 index 0000000..03e39ca --- /dev/null +++ b/rust/matching-brackets/src/lib.rs | |||
| @@ -0,0 +1,12 @@ | |||
| 1 | pub fn brackets_are_balanced(string: &str) -> bool { | ||
| 2 | let mut stack = vec![]; | ||
| 3 | for c in string.chars() { | ||
| 4 | match c { | ||
| 5 | '(' => stack.push(((c as u8) + 1) as char), | ||
| 6 | '[' | '{' => stack.push(((c as u8) + 2) as char), | ||
| 7 | ')' | ']' | '}' if stack.pop() != Some(c) => return false, | ||
| 8 | _ => () | ||
| 9 | } | ||
| 10 | } | ||
| 11 | stack.is_empty() | ||
| 12 | } | ||
