Anda harus menulis program atau fungsi yang menciptakan string "stair-ified". Inilah cara Anda "menaiki tangga" sebuah string:
Untuk setiap karakter dalam string:
Jika karakter adalah vokal huruf besar atau kecil, tidak termasuk 'y', keluarkan kemudian pindahkan sisa string ke atas kolom.
Jika karakter adalah spasi atau tab, keluarkan kemudian pindahkan sisa string ke kolom.
Jika karakter bukan keduanya, keluarkan secara normal.
IO dapat dalam format apa pun yang masuk akal. Masukan tidak akan mengandung baris baru. Jika mau, Anda bisa menghapus spasi spasi apa saja.
Jika Anda memilih untuk mengembalikan string, daripada mencetaknya, harap juga sertakan program pendek yang akan mencetak string Anda sehingga dapat divisualisasikan. Ini tidak wajib, juga tidak akan menuju ke byte-count Anda. Ini hanya kenyamanan bagi pengguna yang tidak mengerti golf atau esolang (seperti saya) untuk dapat memverifikasi output atau bermain-main dengan kode.
Sampel IO:
Output untuk "bcdef ghijkl":
f jkl
bcde ghi
Output untuk "Pemrograman Puzzle Dan Code-Golf":
lf
-Go
s nd de
ng zzle A Co
mmi Pu
gra
Pro
Output untuk "Abcdefghijklmnopqrstuvwxyz":
vwxyz
pqrstu
jklmno
fghi
bcde
A
Seperti biasa, ini adalah kode-golf, jadi jawaban tersingkat dalam byte menang.
Jawaban:
MATL ,
3837 byteCobalah online!
Penjelasan
Untuk setiap karakter, kode menghitung posisi vertikal, diukur dari atas (0 tertinggi). Kemudian membangun string keluaran ditransposisikan: masing-masing karakter berada pada garis dengan banyak ruang terdepan seperti yang ditunjukkan oleh posisi vertikal. Kemudian semua baris digabungkan menjadi array char 2D, yang akhirnya ditransformasikan dan ditampilkan.
sumber
Pyth, 63 byte
Spasi di tengah sebenarnya adalah karakter tab tunggal, tetapi StackExchange menerjemahkannya sebagai empat spasi.
Cobalah online!
sumber
Python 2,
141137 bytesumber
JavaScript (Firefox 30-57), 151 byte
Dimana
\n
mewakili karakter baris baru literal.sumber
/n
dengan ``C, 180 byte
Tidak Disatukan:
sumber
Perl, 110 byte (skrip 108 byte + 2 flag byte)
Jalankan dengan
perl -nl script.pl
, input ada di stdin, output ada di stdout.Deobfuscated
Saya telah mengubah nama variabel lebih masuk akal, membuat kode
use strict
danuse warnings
mematuhi, dan membuat eksplisit banyak perl sihir tidak secara otomatis.Ini hanya dijalankan sebagai
perl script.pl
, karena mereplikasi efek dari-nl
flag di dalam skrip.sumber
JavaScript (ES6), 133
Kurang golf
Uji
sumber
Haskell (dalam terminal ANSI), 75 byte
Contoh penggunaan:
putStr $ ("\27[2J"++).(h=<<) $ "bcdef ghijkl"
Ini menggunakan kode pelarian ANSI untuk menggerakkan kursor ke atas dan ke bawah.
sumber
C,
173160156155 byteSunting: Ide pinjaman untuk menggunakan strchr dari @mIllIbyte untuk mengurangi 13 byte
Sunting2: Merampingkan perbandingan min / maks, -4 byte
Sunting3: c dapat memiliki nilai untuk memulai dengan -> ke main (c) sebagai gantinya, -1 byte
Sunting4: Menambahkan ungolf / penjelasan
Tidak dikumpulkan dan dijelaskan:
sumber