Tantangan
Diberikan matriks biner dan string biner, tentukan apakah string biner itu dapat ditemukan mulai dari titik mana saja dalam matriks dan bergerak ke segala arah pada titik selanjutnya untuk membentuk string biner. Artinya, dapatkah string ditemukan terlipat di dalam matriks?
Tali hanya dapat dilipat pada 90 derajat atau 180 derajat (koneksi tepi; Manhattan Distance 1) dan tidak dapat tumpang tindih dengan sendirinya di titik mana pun.
Contoh
Mari kita ambil contoh berikut:
Matrix:
010101
111011
011010
011011
Snake: 0111111100101
Ini adalah kasus uji kebenaran. Kita bisa melihat ular terlipat di posisi berikut:
0-1 0 1 0 1
|
1 1 1-0 1 1
| | | |
0 1 1 0-1-0
| |
0 1-1 0 1 1
Aturan
- Celah Standar Berlaku
- Anda dapat mengambil panjang string dan lebar dan tinggi matriks sebagai input jika Anda mau
- Anda dapat menggunakan matriks biner dan string biner sebagai string multiline / array string / string yang tergabung dengan baris baru / string apa pun yang tergabung dan string
- Anda dapat mengambil dimensi sebagai susunan datar alih-alih beberapa argumen
- Program Anda harus menyelesaikan untuk setiap matriks 5 x 5 dengan string hingga panjang 10 dalam waktu kurang dari satu menit
Keterbatasan
- Matriksnya tidak harus persegi
- String tidak akan kosong
- String bisa panjang-1
- String tidak akan mengandung lebih banyak kotak daripada yang tersedia (yaitu,
len(string) <= width(matrix) * height(matrix)
Uji Kasus
Sejujurnya
01010
10101
01010
10101
01010
0101010101010101010101010
01110
01100
10010
10110
01101
011111000110100
0
0
10
01
1010
100
010
001
100010001
Palsu
00000
00000
00000
00000
00000
1
10101
01010
10101
01010
10101
11
100
010
001
111
10001
01010
00100
01010
10001
1000100010001000101010100