Anda harus menulis program atau fungsi yang menerima string sebagai input dan output atau mengembalikan jika inputnya adalah pohon ASCII.
_
\/ /
\_/
|
|
Pohon ASCII terdiri dari karakter / \ | _ spaces
dan newlines
.
Karakter non-spasi putih menghubungkan dua titik tepi sel mereka dengan segmen garis:
/
menghubungkan sudut kiri bawah dan kanan atas\
menghubungkan sudut kanan bawah dan kiri atas|
menghubungkan titik tengah dari tepi bawah dan tepi atas_
menghubungkan sudut kiri bawah dan kanan bawah dan titik tengah tepi bawah
(Perhatikan bahwa ini berarti bahwa |
hanya dapat terhubung dengan |
atau _
tetapi tidak dengan /
atau \
.)
Gambar ASCII disebut pohon jika aturan berikut ini berlaku:
- Tepat satu titik (root) tepat satu karakter menyentuh ke tepi bawah baris terakhir.
Anda dapat mencapai titik mana pun dari segmen garis apa pun dengan:
- mulai dari root
- hanya menggunakan segmen garis
- tidak pernah pergi ke arah bawah (bahkan tidak menyamping ke bawah)
Memasukkan
- String yang terdiri dari karakter
/ \ | _ space
dannewline
mengandung setidaknya satu karakter non-spasi. Anda dapat memilih dua format input:
- Tidak ada spasi putih yang tidak perlu di sekitar pohon (seperti terlihat pada contoh).
- Tidak ada spasi putih yang tidak perlu di sekitar pohon (seperti terlihat dalam contoh) kecuali spasi di sisi kanan baris untuk membuat semua baris memiliki panjang yang sama.
Mengejar baris baru adalah opsional.
Keluaran
- Nilai kebenaran yang konsisten jika inputnya adalah pohon ascii.
- Nilai falsy yang konsisten jika input bukan pohon ascii.
Contohnya
Pohon yang valid:
|
_
\/ /
\_/
|
|
/ / \/
\ \____/
\/
/
/
\___/
/ \
\___/
|
|
__/
_/
/
____
\ ___
\ \/
\/\_____/
\/ \/
\__/
|
|
Pohon tidak valid (dengan penjelasan tambahan yang bukan bagian dari input):
\/
\_______/
\__ /
| \_/ <- reachable only on with downward route
|
_ <- multiple roots
\/ <- multiple root characters
/\ <- multiple roots
| <- unreachable part
|
__/
/ <- unreachable parts
|
\____/
| | <- multiple roots
_\__/ <- unreachable parts (_ and \ don't connect to each other)
|
Ini adalah kode-golf sehingga entri terpendek menang.
sumber
Ruby 226
227 228Tes online: http://ideone.com/Z7TLTt
Program melakukan hal berikut:
\
,/
atau|
pada baris terakhir)Ini dia ungolfed:
sumber