Bir programcı olarak, muhtemelen eğik çizgiler ve geriye eğik çizgiler duymuşsunuzdur. Fakat aşağı akıntıları duydunuz mu? Bir demet eğik çizgi aldığınızda, uçlarını birleştirin ve aşağı doğru inmelerini sağlayın.
Bugünün meydan okuması için, sadece eğik çizgilerden oluşan bir dize alan ve aşağı doğru çizilen tüm eğik çizgileri bunları birleştiren bir çizgide çıkaran bir program veya işlev yazmalısınız. Bir örnek görürseniz, bu çok daha net olacaktır. Dize verildiğinde, \\\//\/\\
çıktısını almalısınız:
\
\
\
/
/
\
/
\
\
İşte bazı açıklamalar:
Satır başına bir eğik çizgi olmalıdır.
İlk satırda 0 öncü boşluk olacaktır.
Her eğik çizgi çifti için:
Birbirlerinden farklılarsa, aynı sütunda çizilirler. Örneğin,
\/
verecek:\ /
Aynı karakterdeyse, alt taraf işaret ettiği yönde , ters eğik çizgi için sağa ve öne eğik çizgi için sola hareket ediyor. Yani
\\//
verecek\ \ / /
Her satır, çıktının görsel görünümünü değiştirmediği sürece ekstra boşlukta olabilir. Bire kadar takip eden ve önde gelen yeni satır da kabul edilebilir. Ekstra boş alanlara izin verilmez !
Bunu daha basit tutmak için, dizginin asla çok fazla eğik çizgi içermeyeceğini varsayabilirsiniz. Başka bir deyişle, girişin öneki hiçbir ters eğik çizgiden daha fazla eğik çizgi içermez, bu nedenle bir giriş \\////
veya //
asla bir giriş yapılmaz. Bu aynı zamanda her girişin ters eğik çizgiyle başlayacağı anlamına gelir.
Girişiniz değişmez bir dize olarak alınmışsa, gerekirse ters eğik çizgiden kaçabilirsiniz. Ayrıca boş veya eğik çizgi dışındaki karakterleri içeren bir girişi hiçbir zaman işlemeniz gerekmez.
Herhangi bir makul formatta çıktı alabilirsiniz .
Her zamanki gibi, bu bir kod-golf mücadelesidir, bu yüzden oldukça zor bir dil seçseniz bile mümkün olan en kısa çözümü yapmaya çalışın. Bayt çıkarmak için kullandığınız ilginç teknikleri açıklamak için bonus puan!
Örnekler
#Input
\\\\\\\\\\\
#Output
\
\
\
\
\
\
\
\
\
\
\
#Input
\\\//\\/\//\\///
#Output
\
\
\
/
/
\
\
/
\
/
/
\
\
/
/
/
#Input
\/\/\/
#Output
\
/
\
/
\
/