Masalah ini berasal dari Lima masalah pemrograman yang harus diselesaikan oleh setiap Insinyur Perangkat Lunak dalam waktu kurang dari 1 jam yang merupakan bacaan yang menarik. Beberapa masalah pertama sepele, tetapi yang keempat bisa sedikit lebih menarik.
Diberikan daftar bilangan bulat yang dipisahkan oleh ruang tunggal pada input standar, cetak nilai terbesar dan terkecil yang dapat diperoleh dengan menggabungkan bilangan bulat bersama-sama pada baris mereka sendiri.
Sebagai contoh:
Memasukkan:
5 56 50
Keluaran:
50556
56550
Berbagai poin pesanan:
- Urutan hasil terkecil dan terbesar.
- Hanya nilai terkecil dan terbesar yang dapat dicetak (iterasi semua variasi dan mencetaknya tidak valid).
- Akan selalu ada dua atau lebih bilangan bulat dalam daftar.
- Dimungkinkan untuk hasil terbesar dan terkecil untuk menjadi sama. Dalam hal input
5 55
, nomor555
harus dicetak dua kali. - Bilangan bulat tidak harus berbeda.
5 5
adalah input yang valid. - Leading
0
s on integer bukan input yang valid. Anda tidak perlu menghitung05 55
.
Karena ini adalah golf kode, entri terpendek menang.
05
) utama, apakah kita menganggapnya05
sederhana5
?Jawaban:
CJam,
1413 byteCukup lurus ke depan. Begini Cara kerjanya:
Cobalah online di sini
sumber
e!
ada (bahkan belum muncul di wiki).Pyth,
1413 byteMenghasilkan semua permutasi dan mengurutkannya, mencetak elemen pertama dan terakhir.
sumber
J
inline:hJSmsd.pcz)eJ
Python 2,
10499 byteYa.
Sunting: terima kasih kepada xnor untuk -5 byte!
sumber
sorted
berfungsi tanpa tanda kurung, tetapi Anda juga dapat menghindari penyortiran dan hanya mengambilmin
danmax
.Mathematica,
6458 byteIni mendefinisikan fungsi tanpa nama yang mengambil string dan mencetak dua baris. Ini cukup mudah seperti yang lain: dapatkan semua permutasi, bergabung bersama, urutkan dan cetak hasil pertama dan terakhir.
Enam byte disimpan berkat alephalpha.
sumber
{#&@@#,Last@#}
=>#[[{1,-1}]]
JavaScript (ES6)
54 7285Itu lebih mudah dari yang terlihat. Cukup sortir secara leksikografis. Berita baiknya adalah: itulah cara kerja sortir javascript.Ya ... tidak, itu salah ... masih perbandingan lexicograph (lebih berbelit-belit) dapat melakukan pekerjaan.Catatan: memiliki a dan b numerik, a + [b] adalah jalan pintas untuk + '' + b, karena kita membutuhkan penggabungan string dan bukan penjumlahan.
Catatan 2: baris baru di dalam `` adalah signifikan dan harus dihitung
Edit Jangan berdebat dengan moderator (... hanya bercanda)
Edit2 Memperbaiki format I / O menggunakan popup (lihat Default untuk Code Golf: Metode Input / Output )
Uji di Firefox / konsol FireBug
sumber
J, 34
36,42bytekekuatan kasar sederhana:
sumber
Haskell, 98 byte
Membagi string input di spasi, menggabungkan setiap permutasi dan mengurutkan. Cetak elemen pertama dan terakhir.
sumber
Julia, 77 byte
Ini menciptakan fungsi tanpa nama yang menerima vektor sebagai input dan mencetak minimum dan maksimum permutasi dari elemen yang digabungkan. Untuk menyebutnya, berikan nama, mis
f=v->...
.Penjelasan + tidak dikumpulkan:
Saran dipersilahkan!
sumber
Javascript ( ES6 ) 134
Sayangnya, tidak ada fungsi permutasi bawaan di JS :(
sumber
R, 59 byte
sumber
combinat::permn
.::
diperlukan paket untuk dimuat (vialibrary
ataurequire
) tetapi tidak:::
. Saya bisa saja salah; perlu membaca lebih banyak tentang itu. Terima kasih.permn
secara langsung tanpalibrary(combinat)
.library(combinat)
sebelum Anda dapat menggunakannyapermn
. ;)Ruby 75
Bukan bahasa 'asli' saya, tapi saya pikir saya akan mencoba ... jadi ini bisa (mungkin) menggunakan beberapa tips golf. Tetap saja, bukan peserta yang buruk.
Saya tidak akan mengatakan itu elegan lain bahwa semuanya dibangun ke bahasa. Seharusnya cukup jelas bagaimana cara kerjanya.
sumber
{|x|x.join}
dengan(&:join)
untuk penghematan 3 byte.puts$<.read.split.permutation.map(&:join).minmax
puts gets.split.permutation.map(&:join).minmax
Perl,
7970B (68 + 2)use Math::Combinatorics;say for(sort map{join'',@$_}permute@F)[0,-1]
Panggil dengan
echo 13 42 532 3 6|perl -M5.10.0 -an scratch.pl
. Ada penalti +2 byte untuk-an
. Malu tentang panjang nama modul ...sumber
JavaScript (ES6), 85 byte
pemakaian:
sumber