84 lines
1.7 KiB
Markdown
84 lines
1.7 KiB
Markdown
|
# Transpose
|
||
|
|
||
|
Given an input text output it transposed.
|
||
|
|
||
|
Roughly explained, the transpose of a matrix:
|
||
|
|
||
|
```
|
||
|
ABC
|
||
|
DEF
|
||
|
```
|
||
|
|
||
|
is given by:
|
||
|
|
||
|
```
|
||
|
AD
|
||
|
BE
|
||
|
CF
|
||
|
```
|
||
|
|
||
|
Rows become columns and columns become rows. See <https://en.wikipedia.org/wiki/Transpose>.
|
||
|
|
||
|
If the input has rows of different lengths, this is to be solved as follows:
|
||
|
|
||
|
- Pad to the left with spaces.
|
||
|
- Don't pad to the right.
|
||
|
|
||
|
Therefore, transposing this matrix:
|
||
|
|
||
|
```
|
||
|
ABC
|
||
|
DE
|
||
|
```
|
||
|
|
||
|
results in:
|
||
|
|
||
|
```
|
||
|
AD
|
||
|
BE
|
||
|
C
|
||
|
```
|
||
|
|
||
|
And transposing:
|
||
|
|
||
|
```
|
||
|
AB
|
||
|
DEF
|
||
|
```
|
||
|
|
||
|
results in:
|
||
|
|
||
|
```
|
||
|
AD
|
||
|
BE
|
||
|
F
|
||
|
```
|
||
|
|
||
|
In general, all characters from the input should also be present in the transposed output.
|
||
|
That means that if a column in the input text contains only spaces on its bottom-most row(s),
|
||
|
the corresponding output row should contain the spaces in its right-most column(s).
|
||
|
|
||
|
## Running the tests
|
||
|
|
||
|
To run the tests run the command `go test` from within the exercise directory.
|
||
|
|
||
|
If the test suite contains benchmarks, you can run these with the `-bench`
|
||
|
flag:
|
||
|
|
||
|
go test -bench .
|
||
|
|
||
|
Keep in mind that each reviewer will run benchmarks on a different machine, with
|
||
|
different specs, so the results from these benchmark tests may vary.
|
||
|
|
||
|
## Further information
|
||
|
|
||
|
For more detailed information about the Go track, including how to get help if
|
||
|
you're having trouble, please visit the exercism.io [Go language page](http://exercism.io/languages/go/about).
|
||
|
|
||
|
## Source
|
||
|
|
||
|
Reddit r/dailyprogrammer challenge #270 [Easy]. [https://www.reddit.com/r/dailyprogrammer/comments/4msu2x/challenge_270_easy_transpose_the_input_text](https://www.reddit.com/r/dailyprogrammer/comments/4msu2x/challenge_270_easy_transpose_the_input_text)
|
||
|
|
||
|
## Submitting Incomplete Solutions
|
||
|
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|