mirror of https://github.com/01-edu/public.git
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.
69 lines
1.5 KiB
69 lines
1.5 KiB
4 years ago
|
## scytale_cipher
|
||
|
|
||
|
### Instructions
|
||
|
|
||
|
Create a function called `scytale_cipher` that takes a `string` and an `integer` and returns a `string`.
|
||
|
This function should create a scytale cipher also known as spartan cipher. In practice its a cylinder with a
|
||
|
strip strapped around it on which is written a message, when removed the strip the message is coded.
|
||
|
Depending on the size of the cylinder the message would change. So the only way to decipher the coded message is
|
||
|
by using a cylinder of the same size.
|
||
|
|
||
|
You function should recreate the scytale cipher, the string being the message and the size being the number of
|
||
|
straps in the cylinder.
|
||
|
|
||
|
### Example
|
||
|
|
||
|
message : "scytale Code"
|
||
|
size : 6
|
||
|
|
||
|
```console
|
||
|
['s', 'e']
|
||
|
['c', ' ']
|
||
|
['y', 'C']
|
||
|
['t', 'o']
|
||
|
['a', 'd']
|
||
|
['l', 'e']
|
||
|
```
|
||
|
|
||
|
output : sec yCtoadle
|
||
|
size : 8
|
||
|
|
||
|
```console
|
||
|
['s', 'C']
|
||
|
['c', 'o']
|
||
|
['y', 'd']
|
||
|
['t', 'e']
|
||
|
['a', ' ']
|
||
|
['l', ' ']
|
||
|
['e', ' ']
|
||
|
[' ', ' ']
|
||
|
```
|
||
|
|
||
|
output : sCcoydtea l e
|
||
|
|
||
|
### Expected Functions
|
||
|
|
||
|
```rust
|
||
|
fn scytale_cipher(message: String, i: u32) -> String {}
|
||
|
```
|
||
|
|
||
|
### Usage
|
||
|
|
||
|
Here is a program to test your function
|
||
|
|
||
|
```rust
|
||
|
fn main() {
|
||
|
println!("\"scytale Code\" size=6 -> {:?}", scytale_cipher(String::from("scytale Code"), 6)));
|
||
|
println!("\"scytale Code\" size=8 -> {:?}", scytale_cipher(String::from("scytale Code"), 8)));
|
||
|
}
|
||
|
```
|
||
|
|
||
|
And its output
|
||
|
|
||
|
```console
|
||
|
student@ubuntu:~/[[ROOT]]/test$ cargo run
|
||
|
"scytale Code" size=6 -> "sec yCtoadle"
|
||
|
"scytale Code" size=8 -> "sCcoydtea l e"
|
||
|
student@ubuntu:~/[[ROOT]]/test$
|
||
|
```
|