aboutsummaryrefslogtreecommitdiff
path: root/matching-brackets/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'matching-brackets/src/lib.rs')
-rw-r--r--matching-brackets/src/lib.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/matching-brackets/src/lib.rs b/matching-brackets/src/lib.rs
new file mode 100644
index 0000000..03e39ca
--- /dev/null
+++ b/matching-brackets/src/lib.rs
@@ -0,0 +1,12 @@
1pub 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}