Sortir Buku Teks
Sekolah akan segera dimulai (jika belum) dan inilah saatnya untuk memesan buku pelajaran kami. Anda perlu mengurutkan buku-buku Anda dalam urutan abjad tetapi itu terlalu lama sehingga Anda memutuskan untuk menulis sebuah program untuk melakukannya.
Contohnya
Memasukkan:
_
| | _
|F| | |
|o|_|P|
|o|B|P|
| |a|C|
| |r|G|
|_|_|_|
Keluaran:
_
| |_
|F| |
_|o|P|
|B|o|P|
|a| |C|
|r| |G|
|_|_|_|
Memasukkan
Masukan akan berupa serangkaian buku yang perlu disusun ulang sesuai abjad. Ini hanya akan berisi: |
, _
, , dan
A-Za-z
. Judul-judul buku dibaca secara vertikal, atas-bawah.
Anda dapat memilih untuk menganggap input diisi dengan spasi putih agar sesuai dengan persegi panjang. Jika Anda memilih untuk memasukkan input Anda dengan spasi, harap tentukan ini dalam jawaban Anda.
Ketinggian buku maksimum yang harus ditangani oleh program Anda adalah setinggi 5.120 baris tanpa gagal.
Buku-buku akan selalu setebal 1 dan mereka akan selalu setidaknya satu buku di input
Keluaran
Outputnya harus berupa kumpulan buku yang sama yang disusun dalam urutan abjad. Ketinggian buku harus tetap sama dan judul harus memiliki jarak yang sama dari atas ketika disusun kembali.
Buku harus disortir berdasarkan abjad. Jika bahasa Anda memiliki fungsi sortir, Anda dapat menggunakannya. Kalau tidak, Anda dapat menggunakan penyortiran alfabet seperti yang dijelaskan di sini .
Contoh Judul Buku
_
| |
| |
|F|
|o|
|o|
| |
| |
|B|
|a|
|r|
| |
| |
|_|
Judul buku ini adalah:
"Foo Bar"
Judul buku hanya akan berisi huruf dan spasi.
Trailing whitespace diizinkan
Kemenangan
Ini adalah kode-golf sehingga kode terpendek dalam byte menang.
Jawaban:
CJam, 60 byte
Saya mencoba porting jawaban Python saya, yang juga mirip dengan pendekatan @ RetoKoradi .
Cobalah online . Input harus diisi dengan spasi untuk membentuk persegi panjang.
sumber
Python 3, 231 byte
Hanya hack cepat. Masukkan buku, sortir, rezip, rawat kolom
|
saat kita sedang mengerjakannya.Masukkan string multiline, berlapis dengan spasi tambahan ke persegi panjang. Output memiliki satu ruang trailing lebih pada setiap baris dari yang diperlukan.
Tidak disatukan
sumber
Ruby (
209204200198 byte)Itu
transpose
fungsi dalam solusi ini mensyaratkan bahwa semua garis panjang yang sama, maka input harus empuk dengan spasi.Penjelasan
sumber
ruby
Versi mana yang dibutuhkan? Dengan 2.1.2 untuk input sampel dari pertanyaan, saya mendapatkan "` transpos ': ukuran elemen berbeda (6 harus 2) (IndexError) ".gsub(?|,' ')
→tr(?|,' ')
.Python 2 - 399 byte
Diharapkan input tidak memiliki baris baru.
sumber
CJam,
756665 byteIni mengharapkan input yang diisi dengan spasi untuk membentuk persegi panjang.
Cobalah online
Terima kasih kepada @ Sp3000 dan @Dennis untuk saran tentang pemangkasan string pada obrolan, serta memberi tahu saya bahwa
$
operator dapat mengambil blok sebagai argumen.Saya masih belum sepenuhnya senang dengan loop kedua. Tetapi setelah mencoba beberapa opsi lain tanpa keberhasilan yang lebih baik, saya mulai lelah.
Penjelasan:
sumber
Scala
359341 bytemengharapkan semua garis memiliki panjang yang sama (yaitu berlapis dengan spasi)
ungolfed & berkomentar:
sumber