Diberikan input dari daftar angka dalam format urutan bilangan bulat meningkat, output urutan penuh.
Format urutan integer meningkat berfungsi dengan menemukan setiap angka n dengan digit lebih sedikit dari angka sebelumnya, m . Dengan d sebagai jumlah digit dalam n , d digit terakhir m diganti dengan semua digit n . Berikut ini contoh input:
123 45 6 7 89 200
Menerapkan aturan penggantian, pertama-tama kita mengubah 45 menjadi 145 karena 45 <123:
123 145 6 7 89 200
Berulang kali menerapkan aturan yang sama, ini menjadi:
123 145 146 7 89 200
123 145 146 147 89 200
123 145 146 147 189 200
Urutan sekarang diurutkan (tidak ada angka yang berlaku aturan), jadi ini adalah hasil akhir.
Anda mungkin menganggap itu
notasi steno selalu digunakan bila memungkinkan. Misalnya, input tidak akan
12 3
pernah12 13
.angka tidak akan pernah berkurang sambil tetap jumlah digit yang sama. Misalnya, input tidak akan pernah ada
333 222
.menerapkan aturan steno tidak akan pernah menghasilkan angka yang masih kurang dari angka sebelumnya dalam urutan. Misalnya, input tidak akan pernah ada
123 12
.angka akan selalu bilangan bulat positif dan tidak pernah mengandung 0s terkemuka (jika menggunakan format string).
urutan penuh yang diperluas tidak akan pernah berisi angka duplikat. (Namun, urutan steno mungkin; ex.
10 1 20 1
->10 11 20 21
.)akan ada setidaknya satu nomor dalam input.
Input dan output dapat berupa daftar / array angka / string atau string tunggal dengan elemen yang dipisahkan oleh non-digit.
Karena ini adalah kode-golf , kode terpendek dalam byte akan menang.
Test case, dengan input dan output pada jalur bolak-balik:
1 2 3 10 1 2 20 5 100 200 10 3 5 26 9 99 999 9999
1 2 3 10 11 12 20 25 100 200 210 213 215 226 229 299 999 9999
223 1184 334 441 5 927 2073 589 3022 82 390 5 9
223 1184 1334 1441 1445 1927 2073 2589 3022 3082 3390 3395 3399
5 10 5 20 5 30 5 40 5 50 5
5 10 15 20 25 30 35 40 45 50 55
7 8 9 70 80 90 700 800 900 7000 8000 9000
7 8 9 70 80 90 700 800 900 7000 8000 9000
42
42
Jawaban:
Jelly, 7 byte
Cobalah online! atau verifikasi semua kasus uji .
Bagaimana itu bekerja
sumber
Javascript,
4542 byteOff 3 byte terima kasih @Neil .
Fungsi di atas mengharapkan array string.
Tampilkan cuplikan kode
sumber
z=z.slice(0,-x.length)+x,z=''
(atau nama variabel pilihan Anda).s=>s.split` `.map(
2 byte (saya periksa ulang kali ini) lebih pendek daris=>s.replace(/\d+/g,
.Retina, 45 byte
Menggunakan kelompok penyeimbang untuk menghitung angka yang membutuhkan biaya banyak. Belum menemukan pendekatan yang lebih baik tapi saya tertarik.
Cobalah online di sini.
sumber
Gema, 35 karakter
Input: string dengan angka yang dipisahkan oleh apa pun, string output.
Contoh dijalankan:
sumber
Ruby, 39 karakter
Input: array string, output: array string.
Contoh dijalankan:
sumber
Python 2 , 58 byte
Cobalah online!
sumber