From 64cc39e6507a611366e1c3ddcf098b77c94a38db Mon Sep 17 00:00:00 2001 From: Federico Igne Date: Fri, 10 Jul 2020 11:39:29 +0200 Subject: [rust] Matching Brackets --- matching-brackets/src/lib.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 matching-brackets/src/lib.rs (limited to 'matching-brackets/src/lib.rs') 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 @@ +pub fn brackets_are_balanced(string: &str) -> bool { + let mut stack = vec![]; + for c in string.chars() { + match c { + '(' => stack.push(((c as u8) + 1) as char), + '[' | '{' => stack.push(((c as u8) + 2) as char), + ')' | ']' | '}' if stack.pop() != Some(c) => return false, + _ => () + } + } + stack.is_empty() +} -- cgit v1.2.3