mirror of
https://github.com/balkian/experiments.git
synced 2025-02-13 05:28:16 +00:00
30 lines
790 B
Rust
30 lines
790 B
Rust
|
#!/bin/env cargo-play
|
||
|
fn balanced(s: &str) -> bool {
|
||
|
let mut buffer: String = String::new();
|
||
|
for c in s.chars() {
|
||
|
// dbg!{&buffer};
|
||
|
match c {
|
||
|
'(' | '[' | '{' => buffer.push(c),
|
||
|
')' | ']' | '}' =>
|
||
|
match (c, buffer.chars().last()) {
|
||
|
(']', Some('[')) | (')', Some('(')) | ('}', Some('{')) => {buffer.pop();},
|
||
|
_ => return false,
|
||
|
},
|
||
|
_ => {},
|
||
|
}
|
||
|
}
|
||
|
buffer.is_empty()
|
||
|
}
|
||
|
fn main() {
|
||
|
dbg! {balanced(")(")};
|
||
|
dbg! {balanced("({)}")};
|
||
|
dbg! {balanced("()")};
|
||
|
|
||
|
dbg! {balanced("{}")};
|
||
|
dbg! {balanced("{()}")};
|
||
|
dbg! {balanced("({})")};
|
||
|
dbg! {balanced("(())()")};
|
||
|
dbg! {balanced("((abc)())")};
|
||
|
dbg! {balanced("((abc)()")};
|
||
|
}
|