Tantangan sederhana: diberi serangkaian angka bilangan bulat positif, temukan angka yang berisi di antara digit-digitnya, angka terpanjang dari berturut-turut. Trik-nya? Diijinkan untuk digit dalam proses untuk membungkus nilai yang mungkin ( 0123456789
) dan untuk berlari mundur. Jadi keduanya 2345
, 89012
dan 5432109
berjalan yang valid dari angka berurutan (tetapi tidak 3456765
atau tidak 321090123
karena lari harus selalu dalam arah yang sama, meskipun 3456765
dapat dianggap sebagai dua berjalan: 34567
dan 765
). Dalam kasus ikatan, kembalikan yang pertama.
Kasus uji:
Input: [3274569283, 387652323, 23987654323648, 2345687913624]
Output: 23987654323648
(The run is 98765432; run length: 8)
Input: [123012363672023, 098761766325432, 15890123456765]
Output: 15890123456765
(The run is 8901234567; run length: 10)
Input: [43, 19, 456]
Output: 456
Input: [5, 9, 0]
Output: 5
Input: [71232107, 7012347]
Output: 7012347
Input: [1234, 32109876]
Output: 32109876
Input: [9090, 123]
Output: 123
Catatan:
- Setidaknya akan ada satu nomor dalam input.
- Nomor input dapat berisi angka nol di depan.
- Input dan output dapat dalam format apa pun yang masuk akal . Jadi angka input dapat diambil sebagai string, daftar digit / karakter ...
- Output dapat berisi trailing dan / atau spasi putih dan baris baru selama nomor tersebut dicetak.
- Ini adalah kode-golf , jadi semoga program / fungsi terpendek untuk setiap bahasa menang!
[7,8,1,6]
jalankan maksimal[7,8]
bukan[6,7,8]
, ya?78
dalam hal ini.Jawaban:
Jelly , 18 byte
Cobalah online!
Mengambil dan kembali sebagai daftar angka untuk mempertahankan nol terkemuka.
sumber
3210
di btw nomor pertama)A
ada di sana.JavaScript (ES6),
10410298 byteMengambil input sebagai daftar daftar digit. Mengembalikan yang terbaik.
Uji kasus
Tampilkan cuplikan kode
sumber
Jelly ,
18 1615 byteTautan monadik yang mengambil daftar daftar digit, dan mengembalikan yang paling kiri yang berisi proses maksimal seperti yang dijelaskan.
Cobalah online! atau lihat a test suite (dengan pemrosesan untuk membuat I / O terlihat seperti itu dalam pertanyaan).
Bagaimana?
sumber
V€
tidak yakin tentang itu, Anda mungkin harus menghitung nol terkemuka.Python 2 , 118 byte
Mengambil daftar daftar digit
a
; mengembalikan salah satu daftar.Cobalah online!
sumber
[[9,0,9,0],[1,2,3]]
.Sekam , 20 byte
Mengambil dan mengembalikan daftar daftar digit. Cobalah online!
Penjelasan
sumber
MATLAB, 130 byte
Ambil input ke array, array perbedaan kolom [X (2) -X (1), ..., X (n) -X (n-1)], periksa nilai yang paling sering dalam array (1 urutan naik - 1 sebaliknya), dapatkan indeks untuk nilai yang paling sering atau -9 dikalikan dengan nilai yang paling sering (-9 terjadi dalam urutan naik, 9 sebaliknya), cari indeks berurutan (yaitu selisihnya sama dengan 1) dan jumlahkan tolong, karena sudah terlambat. Keluaran terbesar.
Cobalah online!
sumber