Tantangan
Diberikan string, output teks dalam bentuk kotak.
Anda bisa berasumsi bahwa teks akan selalu masuk dalam kotak , dan itu tidak akan pernah menjadi string kosong.
Anda juga dapat menganggap itu tidak akan pernah memiliki baris baru.
Contoh
Input:
Hi, world
Output:
Hi,
wo
rld
Uji Kasus
Input:
Hi, world! Hello
Output:
Hi,
worl
d! H
ello
Input:
Lorem ipsum dolor sit amt
Output:
Lorem
ipsu
m dol
or si
t amt
Input:
H
Output:
H
Aturan
- Ini kode-golf , jadi jawaban tersingkat dalam byte menang! Tiebreaker adalah jawaban yang paling banyak dipilih.
- Celah standar dilarang.
Jawaban:
Vim,
59, 57, 48 byte / penekanan tombolKarena V kompatibel dari belakang, Anda dapat mencobanya secara online!
Saya secara acak menerima suara positif pada jawaban ini, jadi saya melihatnya lagi. Keahlian vim-golf saya meningkat pesat selama 7 bulan terakhir, jadi saya melihat bahwa jawaban ini sangat buruk golf. Yang ini jauh lebih baik.
sumber
Brainfuck ,
116112 byteCobalah online!
Aman dalam rasa BF yang tidak menutupi sel dengan
256
, tidak mendukung byte nol.Hapus panah kanan awal jika rasa mendukung memori negatif untuk 4 byte yang disimpan.
Penjelasan
Program ini dibagi menjadi 3 tahap:
Tahap 1
Pada tahap ini, kami menempatkan semua karakter ke dalam kaset, sambil tetap menghitung jumlah karakter.
Ini adalah rekaman untuk input
abcdefghi
setelah rekaman ini:The
009
adalah menghitung.Untuk setiap karakter, kami memindahkan nol pertama di sebelah kiri
[<]
dan kemudian menambahkan satu ke hitungan<<+>>>
, dan kemudian pindah ke nol paling kanan[>]
untuk bersiap-siap untuk karakter berikutnya.Tahap 2
Tahap ini melakukan akar kuadrat dari panjang yang disimpan di sel kedua.
Itu terus mengurangi
1, 3, 5, 7, ...
hingga jumlahnya mencapai nol, sambil tetap memeriksa jumlah iterasi.Ini bekerja karena angka kuadrat dapat dinyatakan sebagai
1 + 3 + 5 + ...
.Tahap 3
Menunjukkan akar kuadrat dari panjang yang ditemukan di atas sebagai
n
.Tahap ini menampilkan
n
karakter pada satu waktu, dan kemudian menampilkan baris baru, sampai rekaman itu dihapus.sumber
Python 2, 55 byte
sumber
05AB1E , 5 byte
Cobalah online!
sumber
»
baris baru sekarang.MATL , 6 byte
Cobalah online!
Penjelasan
sumber
Jelly,
87 byteMenyimpan satu byte berkat @ Dennis .
Cobalah online.
Penjelasan
sumber
œs
dans
lakukan hal yang sama di sini.½
tidak bekerjaƽ
?s
danœs
mereka melemparkan ke int.JavaScript (ES7), 49 byte
44 byte di Firefox Nightly 43-46 saja (
**
diperkenalkan beberapa waktu antara Firefox Nightly 42 dan 43 dang
sebagai parameter terpisah dihapus beberapa waktu antara Firefox Nightly 46 dan 47):sumber
+
ins.length*+.5
*+
sintaksis sebelumnya. Bisakah seseorang tolong jelaskan?**
.J, 9 byte
Ini adalah kait monadik pada string input:
Tine yang tepat adalah serangkaian komposisi:
Kiri adalah kata kerja pembentukan, diaktifkan sedemikian rupa sehingga berfungsi dalam format kait.
Berikut adalah beberapa hasil antara:
Dalam kata kata:
sumber
$~,~@
menyerupai semacam emoticon tetapi@
tampaknya aneh untuk telinga tetapi&
lebih cocok, atau$~,~&
$~2#%:@#
adalah 8. Bagian kiri garpu bisa berupa konstanta.C, 64 byte
Panggil
f()
dengan string ke kotak.Cobalah di ideone .
sumber
int
argumen implisit bukanchar*
?int*
karena itu akan salah skala saat menambahkan.s+=write(puts(""),s,m));
daripadas+=m)printf("%.*s\n",m,s);
Perl, 23 + 4 (
-pF
bendera) = 27 byte-2 byte terima kasih kepada @DomHastings
-1 byte terima kasih ke @DomHastings
Cobalah online!
Expanations : menghitung root kuadrat (sebut saja
S
untuk penjelasan) dari ukuran input (akan selalu berupa integer) (@F
digunakan dalam konteks skalar, sehingga mengembalikan ukurannya), lalu tambahkan baris baru setelah setiap blokS
karakter.sumber
$@
;;) Anda dapat menyimpan byte menggunakany///c
bukan panjang dan saya pikir Anda dapat menggunakan baris baru secara literal juga. Saya terlihat berusaha melakukan sesuatu dengan pengaturan$,
dan pencocokan, tetapi saya pikir ini jauh lebih pendek!$@
! Terima kasih untuk ituy///c
, saya cenderung lupa bahwa itu ada.$=
alih-alih$@
, yang memungkinkan untuk tidak menggunakan-l
flag.-pF
zsh, 36 byte
Mengambil input sebagai argumen baris perintah, output ke STDOUT.
sumber
05AB1E ,
86 byteTerima kasih kepada @quartata karena memberi tahu saya tentang fungsi akar kuadrat
Cobalah online!
Penjelasan
sumber
«
singkat untuk bergabung di baris baru :).«
Python,
9475716563 byteVersi lama:
sumber
input()
secara default untuk menerima input dalam tanda kutip, kecuali jika Anda ingin secara khusus menghapus opsi itu.CJam , 8 byte
Cobalah online!
Penjelasan
sumber
Pyth, 8 byte
Cobalah online
Bagaimana itu bekerja
sumber
Dyalog APL, 10 byte
Penjelasan:
Tes:
sumber
Cheddar, 27 byte (tidak bersaing)
Saya menambahkan
.chunk
fungsi beberapa saat yang lalu, tetapi saya menghapusnya dalam transisi ke format stdlib baru dan lupa menambahkan kembali. Cheddar memilikisqrt
operator khusus tetapi**.5
lebih pendekCobalah online!
Penjelasan
sumber
Utilitas Bash + GNU, 25
Tidak jauh berbeda dengan jawaban @ Doorknob , tetapi
dc
merupakan cara yang lebih pendek untuk mendapatkan akar kuadrat.sumber
𝔼𝕊𝕄𝕚𝕟, 11 karakter / 14 byte
Try it here (ES6 browsers only).
Dihasilkan menggunakan kode ini (dijalankan di konsol peramban penerjemah):
sumber
Brainfuck, 83 byte
Cobalah online!
Ini menggunakan ide yang sama dengan jawaban Leaky Nun . Dia meminta bantuan bermain golf dalam obrolan, lalu menyarankan agar saya menambahkan ini sebagai jawaban baru. (Sebenarnya apa yang saya tulis dalam obrolan adalah solusi 84-byte yang sangat mirip dengan ini.)
Demi perbandingan, diperlukan ekstra
>
di awal untuk implementasi brainfuck yang tidak memungkinkan alamat memori negatif.Seperti yang diharapkan, ini menemukan panjang input, kemudian mengambil akar kuadrat, lalu mencetak garis sesuai. Ini mengambil keuntungan dari kuadrat sempurna menjadi jumlah parsial
1 + 3 + 5 ...
.sumber
Brain-Flak ,
11096 byteCobalah online!
Solusi kedua, 96 byte
Cobalah online!
Penjelasan
Di sini saya menjelaskan solusi pertama, keduanya sama panjang tetapi saya suka yang pertama karena lebih dingin dan menggunakan beberapa trik yang bagus.
Bagian terpenting dari kode adalah fungsi akar kuadrat yang dimodifikasi yang saya tulis beberapa waktu lalu. Versi aslinya adalah
Dan ini berhasil, tetapi kita sebenarnya menginginkan dua salinan dari akar kuadrat negatif. Mengapa? Kita membutuhkan dua salinan karena kita mengulang-ulang string pada dua level, satu untuk membuat garis dan satu untuk menghitung jumlah garis. Kami ingin menjadi negatif karena perulangan dengan negatif lebih murah.
Untuk membuat ini negatif, kami bergerak di sekitar
[...]
sehingga terlihat seperti iniUntuk membuat dua salinan, kami mengubah kapan muncul
Sekarang kita memiliki bit itu, kita bisa menyatukannya dengan tumpukan tinggi untuk mendapatkan potongan kode pertama yang kita butuhkan.
Kami pindah ke offstack karena fungsi root kuadrat kami membutuhkan dua nol bebas untuk perhitungan, dan karena itu membuat barang sedikit lebih murah di masa depan dalam hal stack switching.
Sekarang kita membangun loop utama
Ini cukup lurus ke depan, kita loop n kali setiap kali memindahkan n item dan membatasi dengan baris baru (ASCII 10).
Setelah loop selesai, kita perlu membalik urutan output kita sehingga kita hanya menempel pada konstruksi terbalik standar.
sumber
PHP, 51 byte
sumber
Perl 6 , 38 byte
Penjelasan:
sumber
Cheddar, 57 byte
Karena variabel rusak, saya harus meneruskan variabel melalui aplikasi lambda.
Juga, ternyata bahwa meskipun variabel berfungsi, masih akan lebih pendek untuk menggunakan aplikasi lambda.
Pemakaian
sumber
Pyke, 5 byte
Coba di sini!
sumber
Java 1.7, 110 byte
Cobalah! (Ideone)
Saya mencoba pendekatan lain dengan fungsi mengembalikan hasil sebagai string, tetapi hanya harus mendeklarasikan string dan pernyataan kembali sudah lebih mahal (byte-count-wise) daripada pernyataan cetak.
Harus mencintai verbositas Java ... :)
sumber
i=0
,i<k
dans.substring(i*k,i++*k+k)
bukani=-1
,++i<k
,s.substring(i*k,i*k+k)
. Selain itu, biasanya kami menggunakan hanyaJava 7
alih-alihJava 1.7
, tetapi ada baiknya Anda menambahkannya, banyak orang lupa melakukannya.R ,
5954 byteCobalah online!
Mencetak dengan baris baru yang tertinggal. Mengejutkan, mengingat betapa buruknya R menangani string.
sumber
PowerShell, 56
5861bytesumber
Ruby
-p
,403330 byte-7 byte dari @Jordan.
Cobalah online!
sumber
Cembung , 7 byte
Cobalah online!
Fakta menyenangkan:
_,mQ/\*
juga bekerja di TIO karena cara kerjanya.Bagaimana saya lupa membuat op root 1-char square?
sumber