Tantangan
Program harus mengembalikan semua angka yang termasuk dalam kelompok (koma dan urutan yang dipisahkan tanda hubung) dari angka.
Aturan
s
adalah string urutan;- semua angka yang dimasukkan
s
adalah positif ; - jumlahnya akan selalu meningkat ;
- angka tidak akan pernah terulang
- ketika Anda menjawab, tunjukkan output untuk
s="1,3-5,9,16,18-23"
Contohnya
input(s) outputs
-----------------
1 1
1,2 1,2
1-4 1,2,3,4
1-4,6 1,2,3,4,6
1-4,8-11 1,2,3,4,8,9,10,11
Semoga berhasil. =)
4-9,1-2
atau1-3,9-6
?Jawaban:
GolfScript (24 karakter)
Misalnya
Saya sebenarnya memiliki empat solusi 24-char, tetapi saya memilih yang ini karena tidak memiliki karakter alfanumerik.
Bagaimana itu bekerja
sumber
-
?Perl
252625$_
adalah string urutanSesi sampel:
Menambahkan 1 karakter ke jumlah karakter untuk opsi (terima kasih Gareth, ..kinda).
-n
-p
sumber
n
opsi.-M5.010
dan tukarkan-e
untuk-E
skrip golf,
4645Program skrip golf pertama saya, membutuhkan waktu berjam-jam untuk menyelesaikannya.
Anda dapat mencobanya di http://golfscript.apphb.com/
Lemparan terbaik saya untuk menjelaskan kekejaman ini:
sunting 1: mengubah {}% ~ menjadi {} / terakhir, juga deskripsi saya kemungkinan salah.
sumber
{
dan akhir}:r;
dan Anda juga dapat menyimpan satu dengan mengganti1-
dengan(
. (Kebetulan, IIRC itu salah satu trik yang juga saya lewatkan dalam program GolfScript pertama saya){...}%~
dan{...}/
. Jika Anda mengakses sesuatu lebih jauh menggunakan stackinteger $
maka yang pertama lebih sederhana, karena Anda tidak harus menyesuaikan integer setiap kali untuk mengkompensasi apa pun yang Anda tinggalkan di stack.R , 44 byte
Cobalah online!
Tetapkan ulang
-
berartiseq
(yaitu:
), mengelilingi input denganc()
dan mengevaluasi ekspresi yang sesuai.sumber
K, 47
Kasus cobaan
sumber
","/:$,/{{x+!1+y-x}. 2#"J"$"-"\:x}'","\:0:0
untuk 43 byteJelly , 9 byte
Cobalah online!
Pasangan angka
r
dua mengambil dua argumen di kedua sisi itu dan menghasilkan kisaran yang inklusif di antara mereka.sumber
J,
5343413938 karakterMengambil input dari keyboard:
Output untuk test case yang diminta:
sumber
Hassium , 173 Bytes
Ini cukup lama dan mungkin tidak bersaing karena ada trailing, pada akhirnya.
Jalankan online dan lihat diperluas di sini
sumber
Perl (37)
sumber
s="1,3-5,9,16,18-23"
, terima kasihsay join",",eval<>=~s/-/../gr
pada 29 bytePython 2.7,
147138 BytesPemakaian:
Bukan program terbaik ...
sumber
MATLAB, 47 byte
Cuplikan ini membaca input string dari jendela perintah, menggantikan '-' oleh ':', menambahkan tanda kurung ke string dan kemudian mengevaluasinya, sehingga input akan diperluas ke array angka penuh.
Input contoh:
Contoh output:
Saya percaya output ini diperbolehkan, karena tantangannya hanya mengatakan bahwa semua angka dalam grup harus ditampilkan.
sumber
Perl 6 , 36 byte
sumber
PowerShell,
7971 byteCobalah online!
Bagian dalam mengubah "1,5-9,12" menjadi format "(1), (5..9), (12)" yang dipahami PowerShell, kemudian mengeksekusinya dengan iex, yang menciptakan array array. Kemudian beralih melalui masing-masing array batin, lalu akhirnya bergabung semua elemen array luar bersama-sama
Pinjam kode dari jawaban "Bantu Saya Kelola Waktu Saya"
Pemakaian
-8 Bytes berkat Veskah
sumber
K (oK) ,
4031 byteLarutan
Cobalah online!
Penjelasan:
Berhasil lebih banyak bermain golf sembari menambahkan penjelasan ...
sumber
Clojure, 110 byte
Berurusan dengan string tidak terlalu menyenangkan :(
sumber
Python 2 , 112 byte
Jawabannya cukup sederhana dan langsung.
Cobalah online!
sumber
Ruby
-p
, 33 byteCobalah online!
sumber
Japt , 12 byte
Cobalah
sumber
c@
dengan£
?£
sebagai ganti yang pertama 5 byte .Python 2 , 90 byte
Cobalah online!
sumber