Sunting penting: Sebelumnya, ada nilai yang salah dalam Contoh 1. Sudah diperbaiki.
Anda diberi array dua dimensi di mana setiap sel berisi satu dari empat nilai.
Contoh:
1 2 2 2 2 1 @ . . X X V
1 3 1 4 1 4 e . @ I C V
2 3 1 3 4 2 H H @ X I V
1 4 4 2 1 3 V C C
2 2 2 3 2 3 X X X
Keempat nilai mewakili panah arah (atas, bawah, kiri, dan kanan), meskipun Anda tidak tahu nilai mana yang mewakili arah mana.
Panah arah membentuk jalur tak terputus yang menyertakan setiap sel dalam array, meskipun Anda tidak tahu di mana titik awal atau akhir berada.
Tulis beberapa kode yang menentukan ke arah mana masing-masing dari empat nilai mewakili dan di mana titik awal dan akhir berada.
Nilai pengembalian yang dapat diterima untuk array yang berisi nilai-nilai A, B, C, dan D akan menjadi sesuatu seperti:
{ up: A, down: C, left: D, right: B, start: [2, 0], end: [4, 2] }
Karena Anda dapat melintasi jalur dengan dua arah (dari awal hingga akhir dan dari ujung ke awal), akan selalu ada lebih dari satu solusi yang benar, dan mungkin ada lebih dari dua. Asumsikan bahwa input yang Anda terima (seperti dalam contoh di atas) selalu memiliki setidaknya satu solusi yang benar. Dalam kasus di mana ada lebih dari satu solusi yang tepat, mengembalikan hanya satu dari solusi yang tepat sudah cukup.
Kode terpendek menang. Saya akan memilih pemenang setelah 7 hari atau 24 jam tanpa pengiriman baru, mana yang lebih dulu.
Saya menyertakan solusi untuk contoh di atas, tetapi saya mendorong Anda untuk hanya memeriksanya setelah Anda menulis kode Anda:
Satu:
{atas: 3, bawah: 1, kiri: 4, kanan: 2, mulai: [0,0], akhir: [2,5]}
Dua:
{atas: '@', bawah: 'e', kiri: '.', kanan: 'H', mulai: [1,1], akhir: [0,0]}
Tiga:
{up: 'I', down: 'V', kiri: 'C', kanan: 'X', mulai: [0,2], akhir: [4,2]}
