Aturan
Program harus menerima string / array kata sebagai input. Untuk setiap kata dalam string / array, itu akan merekonstruksi kata dengan mengambil karakter secara bergantian dari depan dan belakang kata.
12345 678 9 -> 15243 687 9.
Kemudian akan mengatur ulang kata-kata dengan cara bergantian antara kata yang paling awal dan yang terjadi terakhir dalam string.
15243 687 9 -> 15243 9 687
Akhirnya, itu akan merekonstruksi string dengan menempatkan spasi, tab dan baris baru pada indeks di mana mereka awalnya berada sebelum mengeluarkan hasilnya.
12345 678 9-> 15243 687 9 -> 15243 9 687 -> 15243 968 7
Keluaran harus datatype yang sama dengan input.
Celah Standar dilarang
Contohnya
Input:
Rubah cokelat cepat melompati anjing malas.
Keluaran:
Teh d.ogq kucil yaz bnrwo tehf xoo rvej supmInput:
Rubah cokelat cepat melompati
anjing malas.
Keluaran:
Teh d.ogq kucil yaz bnrwo
tehf xoo rvej supmInput:
Aflack
Output:
Akfcla
Ini adalah kode-golf sehingga kode terpendek menang
sumber
Jawaban:
Jelly ,
15 148 byteSebuah kekalahan 6 byte menyelamatkan dari Dennis (dengan memindahkan meratakan dan cetakan dalam link 1 tidak ada perlu dibagi menjadi dua dan kepala, dan meratakan adalah sudah ada sehingga mereka menjadi salah satu!)
(dari dua baris:,
żṚFœs2Ḣ
danÇ€ÇFṁ⁸
)Cobalah online!
Mengambil larik kata-kata dan mengembalikan larik kata-kata baru. (Footer at TIO memanggil ini dan bergabung dengan array dengan spasi sehingga tercetak dengan baik.)
Catatan - menangani string tunggal, membelah ruang tab dan baris baru, kemudian memasang kembali sebenarnya terbukti agak rumit; begitu saya melihat daftar kata-kata adalah pilihan, banyak hal menjadi lebih mudah!
Bagaimana?
sumber
JavaScript (ES6), 89 byte
Membawa dan menampilkan berbagai kata.
Uji
Tampilkan cuplikan kode
Versi string, 112 byte
Mengambil dan mengeluarkan string.
Uji
Tampilkan cuplikan kode
sumber
Perl , 77 byte
74 byte kode + 3 byte untuk
-0pa
flag.Cobalah online!
Disimpan 8 byte berkat tua @Ton Hospel 's posting di mana aku 'mencuri'
s/../chop/reg
. (Sebelumnya saya punya$c=y///c/2,s/.{$c}$//
)sumber
Perl 6 , 84 byte
Input dan output daftar kata-kata.
Bagaimana itu bekerja
Di dalam lambda, saya mendefinisikan lambda lain untuk melakukan " memutar mengambil karakter secara bergantian dari depan dan belakang ":
Ini berfungsi karena
xx
operator lebih seperti makro daripada fungsi, karena memberikan evaluasi malas malas.Kemudian di lambda utama:
Perl 6 , 87 byte
Ini adalah variasi di atas, yang menginput dan mengeluarkan string - mempertahankan karakter spasi putih yang berbeda.
sumber
Haskell ,
115 95 93 9895 bytePanggil dengan
(!)=<<(f=<<).f.words $ "some string"
.Cobalah online!Terima kasih kepada @nimi karena telah menunjukkan bahwa saya salah membaca tantangan sebelumnya.
Fungsi
f
melakukan memutar pada daftar, sehingga dapat digunakan pada string (daftar karakter) dan daftar string.a!b
menyisipkan spasi putih dari stringb
ke stringa
.(!)=<<(f=<<).f.words
setara dengan\s0 -> (concatMap f . f . words $ s0) ! s0
:sumber