You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.1 KiB

## brackets_matching
### Instructions
Create a **program** that takes an undefined number of command-line arguments. For each argument, if the expression is correctly bracketed, the program prints `OK` to the standard output followed by a newline (`'\n'`), otherwise it prints `Error` followed by a newline.
All characters are ignored except for the following brackets:
- parentheses `(` and `)`.
- square brackets `[` and `]`.
- curly braces `{` and `}`.
Opening brackets must only be closed by the corresponding closing bracket. For example, a curly brace cannot close a square bracket.
A `String` which does not contain any brackets is considered to be correctly bracketed.
If there are no arguments, the program must print nothing.
You'll need to get the command line arguments somehow, and this will get you started:
```rust
fn main() {
let args: Vec<String> = std::env::args().collect();
//...
}
```
### Usage
```console
$ cargo run '(johndoe)' | cat -e
OK
$ cargo run '([)]' | cat -e
Error
$ cargo run
$ cargo run '' '{[(0 + 0)(1 + 1)](3*(-1)){()}}' | cat -e
OK
OK
```