Jangan Anda benci ketika Anda ingin menyalin-menempelkan daftar angka (vektor, array ...), dari satu program ke program lain, tetapi format nomor yang Anda gunakan tidak cocok dengan format yang Anda perlukan. ?
Misalnya, dalam MATLAB Anda mungkin memiliki daftar yang dipisahkan oleh ruang seperti ini:
[1 2 3 4 5] (you can also have it comma separated, but that's not the point)
Dengan Python, Anda harus memasukkan koma untuk membuat daftar itu menjadi input yang valid, jadi Anda harus mengubahnya
[1, 2, 3, 4, 5]
untuk membuatnya bekerja. Di C ++ Anda mungkin menginginkan sesuatu seperti:
{16,2,77,29}
dan seterusnya.
Untuk menyederhanakan kehidupan semua orang, mari kita buat konverter daftar, yang mengambil daftar pada format apa pun *, dan menampilkan daftar pada format lain yang ditentukan.
Kurung yang valid adalah:
[list]
{list}
(list)
<list>
list (no surrounding brackets)
Pembatas yang valid adalah:
a,b,c
a;b;c
a b c
a, b, c <-- Several spaces. Must only be supported as input.
a; b; c <-- Several spaces. Must only be supported as input.
a b c <-- Several spaces. Must only be supported as input.
Catatan, input dapat memiliki sejumlah spasi di antara angka-angka, tetapi output dapat memilih untuk memiliki spasi nol (jika ,
atau ;
digunakan sebagai pembatas), atau ruang tunggal (jika dibatasi-ruang).
Selain daftar input, akan ada string (atau dua karakter) yang menentukan format output. Format string pertama akan menjadi tipe pembukaan braket (hanya), [
, (
, <
, {
atau (yang terakhir adalah satu ruang yang digunakan ketika tidak ada braket sekitarnya). Jenis braket akan diikuti oleh jenis pembatas
,
,, ;
atau (yang terakhir adalah spasi tunggal). Dua karakter format input harus diambil sebagai argumen tunggal (string atau dua karakter berturut-turut) dalam urutan yang dijelaskan di atas.
Beberapa contoh format string:
[, <-- Output format: [a,b,c]
{; <-- Output format: {a;b;c}
<-- Two spaces, output list has format: a b c
Aturan:
- Output tidak dapat memiliki spasi terdepan
- Outputnya dapat memiliki spasi tambahan dan baris baru
- Outputnya hanya berupa daftar angka, bukan
ans =
atau serupa
- Outputnya hanya berupa daftar angka, bukan
- Input akan berupa daftar bilangan bulat atau angka desimal (baik positif dan negatif (dan nol)), dan serangkaian dua karakter
- Jika input hanya terdiri dari bilangan bulat, daftar keluaran harus hanya memiliki bilangan bulat. Jika daftar input terdiri dari bilangan bulat dan angka desimal, semua angka output dapat berupa angka desimal. (Ini opsional untuk menjaga integer sebagai integer)
- Jumlah digit maksimum setelah titik desimal yang harus didukung adalah 3.
- Masukan akan berupa dua argumen. Yaitu jumlahnya dalam satu argumen, dan format string adalah satu argumen.
- Kode dapat berupa program atau fungsi
- Input dapat berupa argumen fungsi atau STDIN
Beberapa contoh:
1 2 3 4
[,
[1,2,3,4]
<1; 2; 3>
; <-- Space + semicolon
1;2;3
not valid: 1.000;2.000;3.000 (Input is only integers => Output must be integers)
{-1.3, 3.4, 4, 5.55555555}
[,
[-1.300,3.400,4.000,5.556] (5.555 is also valid. Rounding is optional)
also valid: [-1.3,3.4,4,5.55555555]
Kode terpendek dalam byte menang. Seperti biasa, pemenang akan dipilih satu minggu dari hari tantangan diposting. Jawaban yang diposting nanti masih bisa menang jika lebih pendek dari pemenang saat ini.
Papan peringkat
Cuplikan Stack di bagian bawah posting ini menghasilkan katalog dari jawaban a) sebagai daftar solusi terpendek per bahasa dan b) sebagai leaderboard keseluruhan.
Untuk memastikan bahwa jawaban Anda muncul, silakan mulai jawaban Anda dengan tajuk utama, menggunakan templat Penurunan harga berikut:
## Language Name, N bytes
di mana N
ukuran kiriman Anda. Jika Anda meningkatkan skor Anda, Anda bisa menyimpan skor lama di headline, dengan mencoretnya. Contohnya:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Jika Anda ingin memasukkan beberapa angka dalam tajuk Anda (mis. Karena skor Anda adalah jumlah dari dua file atau Anda ingin membuat daftar hukuman penterjemah secara terpisah), pastikan bahwa skor sebenarnya adalah angka terakhir di tajuk:
## Perl, 43 + 2 (-p flag) = 45 bytes
Anda juga dapat membuat nama bahasa menjadi tautan yang kemudian akan muncul di cuplikan:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
_
untuk menunjukkan elemen negatif. :(