mirror of https://github.com/01-edu/public.git
lee
4 years ago
1 changed files with 68 additions and 0 deletions
@ -0,0 +1,68 @@ |
|||||||
|
## 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$ |
||||||
|
``` |
Loading…
Reference in new issue