Transpose in Elixir
Take input text and output it transposed.
exercism fetch elixir transpose
Given an input text output it transposed.
Roughly explained, the transpose of a matrix:
is given by:
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:
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).
Execute the tests with:
$ elixir transpose_test.exs
In the test suites, all but the first test have been skipped.
Once you get a test passing, you can unskip the next one by
commenting out the relevant
@tag :pending with a
# @tag :pending test "two characters in a row" do input= "AB" expected = "A\n" <> "B" assert Transpose.transpose(input) == expected end
Or, you can enable all the tests by commenting out the
ExUnit.configure line in the test suite.
# ExUnit.configure exclude: :pending, trace: true
For more detailed information about the Elixir track, please see the help page.
Submitting Incomplete Solutions
It's possible to submit an incomplete solution so you can see how others have completed the exercise.