aboutsummaryrefslogtreecommitdiff
path: root/rust/matching-brackets/src
diff options
context:
space:
mode:
authorFederico Igne <git@federicoigne.com>2020-12-26 17:48:38 +0000
committerFederico Igne <git@federicoigne.com>2021-11-03 18:55:08 +0000
commit02481656966b0a8dfc95cf3c22bcc049660ff7d4 (patch)
tree8e39798fcaf27931d91c2088423fd4e97adcfc2d /rust/matching-brackets/src
parent4e2052c4d792540c2f742b2c2a081b11117ed41d (diff)
downloadexercism-02481656966b0a8dfc95cf3c22bcc049660ff7d4.tar.gz
exercism-02481656966b0a8dfc95cf3c22bcc049660ff7d4.zip
Move Rust exercises in a subdirectory
Diffstat (limited to 'rust/matching-brackets/src')
-rw-r--r--rust/matching-brackets/src/lib.rs12
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 @@
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}