Girdi bir ASCII ağacı ise, girdi olarak çıktı ve çıktı ya da geri dönen bir program veya işlev yazmalısınız.
_
\/ /
\_/
|
|
ASCII ağaçları karakterlerden oluşmaktadır / \ | _ spaces
ve newlines
.
Boşluk olmayan karakterler hücrelerinin iki kenar noktasını bir çizgi parçasına bağlar:
/
sol alt ve sağ üst köşeleri birleştirir\
sağ alt ve sol üst köşeleri birleştirir|
alt kenar ve üst kenarın orta noktalarını birleştirir_
sol alt ve sağ alt köşeleri ve alt kenarın orta noktasını birleştirir
(Not bu araçlar |
, sadece ile bağlanabilir |
ya da _
değil ile /
ya \
.)
Aşağıdaki kurallar geçerliyse ASCII resmine ağaç denir:
- Tam olarak bir karakterin tam olarak bir noktası (kök) son satırın alt kenarına temas eder.
Herhangi bir çizgi segmentinin herhangi bir noktasına aşağıdaki yollarla ulaşabilirsiniz:
- kökten başlayarak
- yalnızca çizgi segmentlerini kullanarak
- asla aşağıya doğru gitmez (yana doğru bile değil)
Giriş
- Karakterlerden oluşan
/ \ | _ space
venewline
en az bir boşluk olmayan karakter içeren bir dize . İki giriş biçimi arasından seçim yapabilirsiniz:
- Ağacın etrafında gereksiz boşluk yoktur (örneklerde görüldüğü gibi).
- Tüm satırları aynı uzunlukta yapmak için satırların sağ tarafındaki boşluklar hariç, ağacın etrafında (örneklerde görüldüğü gibi) gereksiz boşluk yoktur.
Sondaki satır başı isteğe bağlıdır.
Çıktı
- Giriş bir ascii ağacı ise tutarlı bir doğruluk değeri.
- Giriş bir ascii ağacı değilse tutarlı bir falsy değeri.
Örnekler
Geçerli ağaçlar:
|
_
\/ /
\_/
|
|
/ / \/
\ \____/
\/
/
/
\___/
/ \
\___/
|
|
__/
_/
/
____
\ ___
\ \/
\/\_____/
\/ \/
\__/
|
|
Geçersiz ağaçlar (girdilerin parçası olmayan ekstra açıklamalar ile):
\/
\_______/
\__ /
| \_/ <- 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)
|
Bu kod golf bu yüzden en kısa giriş kazanır.