aboutsummaryrefslogtreecommitdiff
path: root/matching-brackets/src
diff options
context:
space:
mode:
authorFederico Igne <git@federicoigne.com>2020-07-10 11:39:29 +0200
committerFederico Igne <git@federicoigne.com>2021-11-03 18:55:08 +0000
commit64cc39e6507a611366e1c3ddcf098b77c94a38db (patch)
tree9f7ad6eab4801d279a68c2da768135c6bc0d5b06 /matching-brackets/src
parentb6a96e1bfe1a2e411a14fff13948236054a8cca5 (diff)
downloadexercism-64cc39e6507a611366e1c3ddcf098b77c94a38db.tar.gz
exercism-64cc39e6507a611366e1c3ddcf098b77c94a38db.zip
[rust] Matching Brackets
Diffstat (limited to 'matching-brackets/src')
-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}