Problem 782. Some Assembly Required
The input to this function is a matrix of real numbers. Your job is to assemble the rows of the matrix into one large row that contains all of the individual rows of the matrix, and to make this output row as short as possible. You accomplish this by joining the rows together at the points at which they overlap. To help with the task, you can flip rows if you need to do so.
For example:
input = [1 1 2 3 ; 4 5 6 7 ; 5 4 8 3]
output = [1 1 2 3 8 4 5 6 7]
Explanation: The [1 1 2 3] is the first row of the input.
[3 8 4 5] is the third row (flipped) so the 3 at the end of the third row overlaps with the 3 at the end of the first row.
[4 5 6 7] is the second row, with the [4 5] overlapping with the flipped [5 4] from the third row.
Other than the mirrored version of the solution ([7 6 5 4 8 3 2 1 1] in the above example), each solution will be unique. Flipped versions of the entered value of y_correct will be tested for as well, in case your code comes up with that version of the correct answer.
Good luck, and happy hunting.
Solution Stats
Problem Comments
-
6 Comments
The 16 in test case 4 should be a 6.
It's changed now. Good catch.
FYI: at this moment all solutions below score 150 are hard-coded ones
I've added some randomness to the test suite questions to stop the look-up tables from working properly. Thanks for the heads up on that. As you may have noticed, it's been a while since I submitted this problem!
Solutions aren't unique: f([1;2;3]) = {[1,2,3],[1,3,2],[2,1,3]}
Nice problem!
Solution Comments
Show commentsProblem Recent Solvers94
Suggested Problems
-
2263 Solvers
-
1596 Solvers
-
21409 Solvers
-
Project Euler: Problem 1, Multiples of 3 and 5
3169 Solvers
-
412 Solvers
More from this Author80
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!