Tantangan
Mark adalah seorang siswa yang menerima N
nilai - nilainya secara serentak dalam satu baris.
Tantangannya adalah untuk memisahkan tanda, mengetahui bahwa setiap tanda hanya bisa 0
atau 1
atau 2
atau 3
atau 4
atau 5
atau 6
atau 7
atau 8
atau 9
atau 10
.
Memasukkan
N
bilangan alami dan satu baris.
Keluaran
Satu set angka alami.
Contoh
N, One line------------------> Set of marks
3, '843'---------------------> [8, 4, 3]
1, '0'-----------------------> [0]
2, '1010'--------------------> [10,10]
3, '1010'--------------------> [1,0,10] or [10,1,0]
4, '1010'--------------------> [1,0,1,0]
9, '23104441070'-------------> [2, 3, 10, 4, 4, 4, 10, 7, 0]
12,'499102102121103'---------> [4, 9, 9, 10, 2, 10, 2, 1, 2, 1, 10, 3]
5, '71061'-------------------> [7, 1, 0, 6, 1]
11,'476565010684'------------> [4, 7, 6, 5, 6, 5, 0, 10, 6, 8, 4]
4, '1306'--------------------> [1, 3, 0, 6]
9, '51026221084'-------------> [5, 10, 2, 6, 2, 2, 10, 8, 4]
14,'851089085685524'---------> [8, 5, 10, 8, 9, 0, 8, 5, 6, 8, 5, 5, 2, 4]
11,'110840867780'------------> [1, 10, 8, 4, 0, 8, 6, 7, 7, 8, 0]
9, '4359893510'--------------> [4, 3, 5, 9, 8, 9, 3, 5, 10]
7, '99153710'----------------> [9, 9, 1, 5, 3, 7, 10]
14,'886171092313495'---------> [8, 8, 6, 1, 7, 10, 9, 2, 3, 1, 3, 4, 9, 5]
2, '44'----------------------> [4, 4]
4, '9386'--------------------> [9, 3, 8, 6]
Aturan
- Ketika beberapa output dimungkinkan, berikan hanya satu output.
- Hanya tanda nilai
10
pada dua desimal, yang lain pada satu desimal. - Input dan output dapat diberikan dalam format apa pun yang nyaman
- Tidak perlu menangani input yang tidak valid
- Program lengkap atau fungsi dapat diterima. Jika suatu fungsi, Anda dapat mengembalikan output daripada mencetaknya.
- Jika memungkinkan, harap sertakan tautan ke lingkungan pengujian online agar orang lain dapat mencoba kode Anda!
- Celah standar dilarang.
- Ini adalah kode-golf sehingga semua aturan golf biasa berlaku, dan kode terpendek (dalam byte) menang.
code-golf
string
array-manipulation
mdahmoune
sumber
sumber
n, 'string'
pasangan dari blok teks contoh copypasted:spl = [item.split('-')[0] for item in text.split('\n')]
Jawaban:
Brachylog ,
2321 byte-2 byte berkat Fatalize
Cobalah online!
Masukan adalah pasangan
[Line, N]
.Ini adalah program Brachylog pertama saya, jadi mungkin ada banyak ruang untuk perbaikan.
Sangat lambat ketika panjang garis> 7.
Penjelasan:
(*)
ịṫ?
memeriksa bahwa tidak ada nol di depan. Ini mengkonversi string ke integer dan kemudian kembali ke string dan membandingkannya dengan string asli.sumber
ị
dan untuk nol cek terkemuka:h~c.{ℕ≤10}ᵛ&t~l
. Ini mungkin lebih lambat meskipun sebagai deconcatenation pada bilangan bulat harus bekerja bahkan untuk bilangan bulat yang tidak diketahui melalui kendala, yang membuatnya tidak efisien.h
dant
mendapatkan elemen pertama / terakhir lebih efisien daripada menggunakan∋
untuk keduanya (yang dalam sebagian besar program bahkan tidak akan bekerja)).Perl 6 , 25 byte
Cobalah online!
Blok kode anonim yang mengambil angka dan string dan kembali sebagai objek Pencocokan.
Penjelasan:
sumber
Python 3 , 47 byte
Cobalah online!
Mengambil "satu baris" sebagai bytestring dengan byte mentah
\x00 - \x09
. Jika tidak dapat diterima:Python 3 , 56 byte
Cobalah online!
Mengambil "satu baris" sebagai bytestring.
sumber
V ,
17, 12 byteCobalah online!
Saya puas dengan 17 byte, tetapi dari 05AB1E datang dengan 13 byte, dan saya tidak bisa membiarkan tantangan tidak terjawab. : D
Hexdump:
Solusi alternatif:
Sayangnya, ini diganti
10
dengan1 0
sumber
Ruby , 57 byte
Cobalah online!
Ini mungkin berubah menjadi bukan pendekatan golf, tetapi sepertinya ide yang menyenangkan untuk sementara menggantikan
10
hexA
, yang notabene juga merupakan nilai tinggi (jika kita mempertimbangkan sistem penilaian AF :))sumber
Haskell , 68 byte
Cobalah online!
Dengan rakus butuh 10-an asalkan ada lebih banyak digit daripada tanda tersisa.
sumber
JavaScript,
5752 byteCobalah secara Online
sumber
Python 3 ,
71 6859 byteturun 9 byte berkat ovs.
Cobalah online!
Awalnya saya mencoba menggunakan
str.partition()
secara rekursif, tetapi menggunakanreplace
memukul wajah saya tidak lama kemudian. Adakah yang bisa memperbaiki ini?Juga, inilah tautan TIO yang saya gunakan untuk menjadikan kasus uji menjadi sesuatu yang lebih mudah disalin / ditempel
sumber
: [c
dan'x' else
dan10 for
<number>e
,<letter><number>
,f'
.lambda n,s:[int(c,11)for c in s.replace('10','a',len(s)-n)]
.Haskell , 98 byte
Cobalah online atau uji semua!
Penjelasan
Fungsi
s
melakukan semua kemungkinan pemisahan, misalnya:"1010"
menjadi[[1,0,1,0],[10,1,0],[1,0,10],[10,10]]
, perhatikan bagaimana pemisahan terpanjang berakhir di awal (karena1:0:y
terjadi sebelumnya10:y
).Dengan mengingat hal itu, kita dapat mengambil semua nilai ini dan memfilter
y
s di tempaty == take n y
yang juga menyimpan pemisahan yang lebih pendek dari yang dibutuhkan. Misalnya dengan4
kita biarkan daftarnya sama[[1,0,1,0],[10,1,0],[1,0,10],[10,10]]
.Sekarang kita bisa mendapatkan elemen pertama dalam daftar itu karena input akan selalu valid (mis.
5!"1010"
Akan memberi[1,0,1,0]
juga, tetapi kita tidak perlu menanganinya).Catatan: Saya entah bagaimana salah hitung ..
y==take n y
panjangnya sama denganlength y==n
: Ssumber
Perl 5
-plF
, 39 byteCobalah online!
sumber
Bersihkan , 128 byte
Cobalah online!
sumber
05AB1E , 13 byte
Cobalah online! atau sebagai Test Suite
Penjelasan
sumber
JavaScript (Babel Node) ,
70 6959 byteMengambil input sebagai
(n)(line)
.Cobalah online!
Berkomentar
JavaScript (ES6),
6459 byteDisimpan 5 byte berkat @ guest271314
Mengambil input sebagai
(n)(line)
.Cobalah online!
Berkomentar
sumber
s.match()
mengembalikan array string tetapi"10"
dapat dibagi menjadi[1,0]
(2 bilangan bulat) dalam fungsi panggilan balik dariflatMap()
.eval(`[${s}]`.replace('1,0',10))
Java (OpenJDK 8) , 78 byte
Satu garis yang bagus menggunakan stream API.
Cobalah online!
Bagaimana itu bekerja
sumber
R , 63 byte
Sementara panjang string lebih besar dari
n
, gantikan 10 berikutnya yang Anda raih untuk":"
(karakter ASCII setelah 9). Kemudian dibagi menjadi angka-angka dengan mengambil nilai ASCII dari masing-masing karakter dalam string.Cobalah online!
sumber
Merah , 91 byte
Cobalah online!
sumber
Jelly , 18 byte
Cobalah online!
sumber