Memasukkan:
Daftar bilangan bulat
Keluaran:
Letakkan setiap digit (dan tanda minus) di jalurnya sendiri, dalam urutan -0123456789
, abaikan digit yang digandakan.
Contoh:
Memasukkan: [1,729,4728510,-3832,748129321,89842,-938744,0,11111]
Keluaran:
-0123456789 <- Added as clarification only, it's not part of the output
1
2 7 9
012 45 78
- 23 8
1234 789
2 4 89
- 34 789
0
1
Aturan tantangan:
- Digit digandakan dalam nomor tersebut diabaikan.
- I / O dapat dalam format apa pun yang masuk akal. Input dapat berupa daftar / larik string atau karakter-larik. Output dapat berupa daftar string, karakter, karakter-matriks, dll.
- Ruang tambahan adalah opsional.
- Setiap jumlah baris baru yang mengarah atau tertinggal adalah opsional (tetapi tidak di antara baris).
- Input akan selalu mengandung setidaknya satu integer
- Anda harus mendukung berbagai integer setidaknya
-2,147,483,648
meskipun2,147,483,647
(32-bit). - Daftar input tidak akan pernah berisi
-0
,00
(atau lebih dari dua nol), atau bilangan bulat dengan nol nol terkemuka (yaitu012
). - Jika bahasa Anda menggunakan simbol yang berbeda untuk angka negatif (seperti angka atas
¯
), Anda juga diperbolehkan menggunakannya, asalkan konsisten. - Anda diizinkan untuk memiliki pembatas ruang antara digit (sehingga garis tanpa 5 atau 8 bisa
- 0 1 2 3 4 6 7 9
bukan-01234 67 9
), asalkan konsisten (dan oleh karena itu juga harus ada spasi antara-
dan0
).
Aturan umum:
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
Jangan biarkan bahasa kode-golf mencegah Anda memposting jawaban dengan bahasa non-codegolf. Cobalah untuk memberikan jawaban sesingkat mungkin untuk bahasa pemrograman 'apa saja'. - Aturan standar berlaku untuk jawaban Anda, jadi Anda diperbolehkan menggunakan STDIN / STDOUT, fungsi / metode dengan parameter yang tepat dan tipe pengembalian, program lengkap. Panggilanmu.
- Celah default tidak diperbolehkan.
- Jika memungkinkan, silakan tambahkan tautan dengan tes untuk kode Anda.
- Juga, silakan tambahkan penjelasan jika perlu.
Kasus uji:
Input: [1,729,4728510,-3832,748129321,89842,-938744,0,11111]
Output:
1
2 7 9
012 45 78
- 23 8
1234 789
2 4 89
- 34 789
0
1
Input: [4,534,4,4,53,26,71,835044,-3559534,-1027849356,-9,-99,-3459,-3459,-94593,-10234567859]
Output:
4
345
4
4
3 5
2 6
1 7
0 345 8
- 345 9
-0123456789
- 9
- 9
- 345 9
- 345 9
- 345 9
-0123456789
Input: [112,379,-3,409817,239087123,-96,0,895127308,-97140,923,-748]
Output:
12
3 7 9
- 3
01 4 789
0123 789
- 6 9
0
123 5 789
-01 4 7 9
23 9
- 4 78
Input: [-15,-14,-13,-12,-11,10,-9,-8,-7,-5,-4,-3,-1,0,9,100,101,102,1103,104,105,106,116,-12345690]
Output:
- 1 5
- 1 4
- 1 3
- 12
- 1
-01
- 9
- 8
- 7
- 5
- 4
- 3
- 1
0
9
01
01
012
01 3
01 4
01 5
01 6
1 6
-0123456 9
Input: [99,88,77,66,55,44,33,22,11,10,0,0,0,-941]
Output:
9
8
7
6
5
4
3
2
1
01
0
0
0
- 1 4 9
¯
bukan-
?"-0 1 2 3 4 <space> 6 7 <space> 9"
(Beberapa spasi menjadi kolaps dalam komentar, karena beberapa alasan)Jawaban:
Stax , 8 byte
Jalankan dan debug itu
Dibutuhkan satu nomor per baris pada input standar. Ini bekerja dengan menemukan indeks target setiap karakter dan menugaskannya ke dalam indeks hasil. Jika indeks di luar batas, array diperluas dengan nol sampai cocok. Selama output,
0
menjadi spasi. Sisanya adalah kode karakter.Dibongkar, tidak diserang, dan dikomentari, seperti inilah bentuknya.
Jalankan yang ini
sumber
["7"]
. Format ini juga dapat menangani beberapa nilai seperti["34", "43"]
.05AB1E , 13 byte
Kode:
Menggunakan penyandian 05AB1E . Cobalah online!
Penjelasan:
sumber
vðTúyvyÐd+ǝ},
;).ǝ
apakah akan berfungsi seperti itu-0
. Tapi sekarang setelah saya tihnk, itu sebenarnya angka dan bukan string ketika saya pertama kali membacanya sebagai: PHaskell , 51 byte
-1 byte terima kasih kepada Laikoni .
Cobalah online!
Tantangan ini bersifat digital. D:
sumber
"-0123456789"
byte lebih pendek dari'-':['0'..'9']
.JavaScript,
5958 byteInput & output sebagai array string.
Cobalah
Asli
Mengambil input sebagai larik string dan menghasilkan larik array karakter
Tampilkan cuplikan kode
sumber
APL (Dyalog) ,
3212 byte28 byte disimpan berkat @ Adám dan @ngn
Cobalah online!
sumber
{' '@(~∊∘⍵)'¯',⎕D}¨
. Jelas bisa juga-
dengan perubahan sepele.{⊃¨⍵∘.∩'¯',⎕d}
⊃¨⎕∘.∩'¯',⎕d
05AB1E ,
1713 byteDisimpan 4 byte berkat Adnan
Cobalah online!
Penjelasan
sumber
Ruby , 42 byte
Lambda Anonim memproses array angka:
Cobalah online!
Atau, program lengkap seperti Perl jauh lebih pendek. aku akan mengatakan
-pl
switch terlihat cukup lucu dalam konteks ini:Ruby
-pl
, 29 byteCobalah online!
Akhirnya, berikut ini adalah mungkin jika dapat diterima untuk dikutip string keluaran:
Ruby
-n
, 27 byteCobalah online!
sumber
JavaScript (Node.js) , 60 byte
Cobalah online!
sumber
join
trik itu indah - tetapi pertanyaannya berbunyi seperti array string adalah output OK jadi mungkin Anda bisa mencukur 8 byte dengan menghapusnya?(X+"").includes(x)
denganRegExp(x).test(X)
(X+"").match(x)
akan lebih pendek. Pertanyaannya juga memungkinkan input menjadi array string, jadi itu bisa sajaX.match(x)
.Japt , 16 byte
Input & output sebagai array string.
Cobalah
Penjelasan
sumber
Python 3 ,
7764 byte-12 byte terima kasih kepada @Rod
Cobalah online!
Upaya pertama saya yang tepat untuk bermain golf di Python. Saran selamat datang!
Mengembalikan array karakter 2D.
sumber
'-0123456789'
sebagai gantinyarange(10)
dan menjatuhkan blok pertama dan bertukarstr(z)
denganz
, Anda juga dapat beralih ke python2 dan menggunakan`y`
sebagai gantinyastr(y)
(``
adalah + - setara denganrepr
)in "-
.Perl 5
-pl
, 33 byteCobalah online!
Mengambil input sebagai jalur terpisah.
sumber
Haskell , 47 byte
Cobalah online!
Menggunakan
max
untuk memasukkan spasi di mana tidak ada elemen, karena spasi lebih kecil dari angka atau tanda minus apa pun.Jika jumlah ruang trailing yang tidak baik adalah OK, dua byte dapat disimpan:
45 byte
Cobalah online!
sumber
MATL , 13 byte
Input adalah array sel string. Cobalah online! Atau verifikasi semua kasus uji .
Penjelasan
sumber
J ,
3227 byte-5 byte terima kasih kepada FrownyFrog!
Cobalah online!
Solusi asli:
J, 32 bytes
Explanation:
@":
convert to characters and}11$' '"0
change the content of an array of 11 spaces to these characters'_0123456789'i.[
at the places, indicated by the indices of the characters in this listTry it online!
sumber
10|.":(10<."."0@[)}11$' '"0
Google Sheets, 124 bytes
Input is a comma-separated list in cell
A1
. Output is in the rangeB1:L?
where?
is however many entries were input. (You can put the formula wherever you want, I just choseB1
for convenience.) Note that Sheets will automatically add four closing parentheses to the end of the formula, saving us those four bytes.Another test case and another test case
Explanation:
Mid("-0123456789",Row($1:$11),1)
picks out each of the 11 characters in turn.Find(Mid(~),Split(A1,","))
looks for those characters in each of the input elements. This either returns a numeric value or, if it's not found, an error.If(IsError(Find(~)," ",Mid(~))
will return a space if the character wasn't found or the character if it was. (I wish there was a way to avoid duplicating theMid(~)
portion but I don't know of one.)ArrayFormula(If(~))
is what makes the multi-cell references inMid(~)
andFind(~)
work. It's also what makes a formula in one cell return values in multiple cells.Transpose(ArrayFormula(~))
transpose the returned array because it starts off sideways.sumber
Jelly, 12 bytes
Try it online!
-2 thanks to Jonathan Allan reading a rule I didn't.
Note that the I/O format used in the TIO link is not the actual one, which is input as a list of string representations and output as a list of lines.
sumber
Perl 6, 35 bytes
Try it online!
Output is a character matrix containing either regex matches or space characters.
sumber
-pe
would let you dispense with the initial .map, braces and swap$^a
for$_
-p
and-n
somehow seem buggy, at least on TIO. For some reason$_
isn't passed to blocks. See example 1, example 2.Java 8, 53 bytes
My own challenge is easier than I thought it would be when I made it..
Input and output both as a
java.util.stream.Stream<String>
.Explanation:
Try it online.
sumber
C (gcc), 159 bytes
Try it online!
sumber
R,
9675 bytesTry it online!
Thanks to Kevin Cruijssen for suggesting this regex approach!
Takes input from stdin as whitespace separated integers, and prints the ascii-art to stdout.
sumber
function(N)for(i in N)cat(paste(gsub(paste("[^","]",sep=i)," ","-0123456789"),"\n"))
. (Input as string-array instead of integer-array.) Try it online.SOGL V0.12,
1413 bytesTry it Here!
Explanation:
sumber
SNOBOL4 (CSNOBOL4), 85 bytes
Try it online!
sumber
Pyth, 14 bytes
Takes input as list of strings and outputs a list of strings for each line.
Try it here
Explanation
sumber
Retina, 26 bytes
Try it online! Note: Trailing space. Explanation:
%
executes its child stage~
once for each line of input.~
first executes its child stage, which wraps the line in[^
and]<CR><SP>
, producing a program that replaces characters not in the line with spaces. The"-0123456789"
specifies that the input to that program is the given string ($
substitutions are allowed but I don't need them).sumber
Perl 5
-n
, 30 bytesWouldn't work if
-
could appear anywhere else than in the first positionTry it online!
sumber
-
could appear anywhere else than in the first position if that can be true then you are not answering this challenge, since they wouldn't be integers anymore. :PRed, 94 bytes
Takes input as a block of strings
Try it online!
sumber
CJam, 20 bytes
Try it online!
Accepts input as space separated list of integers. Pretty much the same approach as @adnans answer.
sumber
C (gcc),
9594 bytesTry it online!
Input in the form of a list of strings. Output to STDOUT.
sumber
c++
, and changingd=c?c+47:
tod=c++?c+46:
.K4,
3027 bytesSolution:
Example:
Explanation:
Return "-0123..." or " " based on the input. Interpreted right-to-left. No competition for the APL answer :(
sumber
APL+WIN, 33 bytes
Prompts for screen input as a string
sumber