Giriş
Alice , Martin Ender'in kardinal ve ordinal olmak üzere iki farklı yürütme moduna sahip 2-d dilidir . Kullanıcı işaretçi geçtiğinde yoluyla (bir ayna /ya da \), diğer bir moddan diğerine geçer.
Bu meydan okumada , komutların dizelerde çalıştığı ve komut işaretçisinin kodun kenarlarına zıplayarak çapraz olarak hareket ettiği sıralı moda odaklanacağız .
Yalnızca sıralı modda çalışan basit programlar, aşağıdaki örnekte olduğu gibi oldukça kompakt bir tarzda yazılabilir:
/fbd/
@aec\
İşte IP ilk hücre doğu gitmekten kardinal modunda başlar ilk aynanın içinden geçer ve çapraz hareket ve zıplayan, komutları yürütmeye başlar a, bve c. Daha sonra diğer aynaya doğru güneye gidip, batıya doğru geri sıçrayan komutları karşılaşma başlamak yapar kuzey doğu ayna karşılaştığında d, e, fve son olarak @, programı sonlandırır hangi.
Bu tür bir yapı oldukça kompakttır, ancak yazması ve bakımı kolay değildir (tek bir komut eklemek bizi kodun çoğunu yeniden sıralamaya zorlayabilir!), Bu yüzden biçimlendirme konusunda bana yardımcı olmanızı istiyorum.
Görev
Her komutun tek bir yazdırılabilir ASCII karakteri olduğu bir komut dizisi verildiğinde, dizinin ilk yarısının ikinci satırın ilk karakterinden başlayıp her zaman çapraz olarak sağa doğru hareket edebilmesi için bunları iki satırda yeniden sıralayın, ikinci yarı ise kalan karakterleri sağdan sola alarak okunabilir. Aynalar ve sonlandırma sembolü hakkında endişelenme, kendim ekleyeceğim.
Yani, örneğin, giriş verilen abcdefçıkış gerektiğini
fbd
aec
Girişin tek uzunlukta olması durumunda, karşılaşılan komutların dizisi aynı kaldığı sürece, herhangi bir yere tek bir boşluk (Alice'de bir noop) eklemelisiniz. Ayrıca, uzunluğu bir karakter farklı olan iki satırın çıktısını almayı da seçebilirsiniz, bu durumda daha kısa olanın sonunda tek bir boşluk olduğu düşünülür.
kurallar
Bu kod golf, en kısa cevap bayt cinsinden kazanır!
- Varsayılan giriş / çıkış yöntemlerinden herhangi biriyle giriş / çıkış yapabilirsiniz
- Giriş, yazdırılabilir ASCII karakterlerinden oluşan tek bir satırdan oluşur
- Çıktıda tek bir sondaki yeni satıra izin verilir
- Alice programları olarak çalıştırıldığında programınızın bazı çıktıları tamamen doğru bir davranış göstermeyebilir (örn. Dolgu alanı bir dize değişmezinin içine eklenmişse). Bu durumlarla ilgilenmenize gerek yok
- Standart boşluklar yasaktır
Test senaryoları
--Input
abcdef
--Output
fbd
aec
--Input
123
--Output
2
13
OR
31
2
OR
3
12
OR
32
1
--Input
O
--Output
O
OR
O
--Input
"Hello, World!"o
--Output
oH!lloo
""edlr,W
--Input
i.szR.szno
--Output
o.zz.
inssR
--Input
" ^^} .~[}.~~[}{~~{}[^^^^.""!}"r.h~;a*y'~i.*So
--Output
o *^i}'.*[;.h~r}}~"{.[^
"S .^~ y~a}~~.["{!~"}^^^
(Odd length, your solution may be different)