Anda harus mengambil dua daftar bilangan bulat positif sebagai input, sebut saja n dan m ini .
Anda dapat berasumsi bahwa:
- Semua bilangan bulat di n adalah bagian dari m
- Semua bilangan bulat dalam m adalah unik
- Daftarnya tidak kosong
Tantangan: Mengembalikan indeks tempat Anda menemukan nilai dalam n , dalam m .
Itu mungkin membingungkan, tapi saya pikir test case akan membuat tugasnya cukup jelas. Contohnya adalah 1-diindeks, Anda dapat memilih 0-diindeks jika Anda ingin (mohon sebutkan).
n = 5 3 4 1
m = 6 8 4 1 2 5 3 100
output: 6 7 3 4 // 5 is in the 6th position of m
// 3 is in the 7th position of m
// 4 is in the 3rd position of m
// 1 is in the 4th position of m
n = 5 3 4 9 7 5 7
m = 3 4 5 7 9
output: 3 1 2 5 4 3 4
n = 1 2 3 4 5 6
m = 1 2 3 4 5 6
output: 1 2 3 4 5 6
n = 16 27 18 12 6 26 11 24 26 20 2 8 7 12 5 22 22 2 17 4
m = 15 18 11 16 14 20 37 38 6 36 8 32 21 2 31 22 33 4 1 35 3 25 9 30 26 39 5 23 29 10 13 12 7 19 24 17 34 27 40 28
output: 4 38 2 32 9 25 3 35 25 6 14 11 33 32 27 16 16 14 36 18
n = 54
m = 54
output: 1
Pemenang akan menjadi solusi terpendek dalam setiap bahasa.
Ngomong-ngomong, ini adalah meta-post yang sangat bagus!
Jawaban:
V , 26 byte
Cobalah online!
Ini adalah solusi yang sangat aneh dan peretasan, karena V memiliki sedikit atau tanpa konsep angka. Masukan datang dalam format ini:
Dengan spasi tambahan di setiap baris.
Hexdump:
Penjelasan:
Jika ini tidak membuatnya lebih jelas, berikut adalah contoh buffer selama berbagai tahap yang dilalui loop:
Tahap 1 (
|
adalah kursor)Tahap 2:
Tahap 3:
Tahap 4:
Tahap 5:
Tahap 6:
Tahap 7:
Kembali ke tahap 1:
sumber
Python 2 , 25 byte
Cobalah online!
Perhatikan bahwa ini menggunakan pengindeksan 0.
sumber
APL (Dyalog) , 1 byte
Cobalah online!
Catatan:
⍳
fungsi tidak mengambil skalar sebagai argumen kirinya, jadi untuk memberikan argumen kiri seperti54
, Anda harus membuatnya menjadi array menggunakan,
seperti itu(,54)
.sumber
Mathematica, 25 byte
Mengambil dua input
m
dann
, dan mengembalikan indeks berbasis 1n
dim
.sumber
Retina ,
323130 byte1 byte disimpan berkat Kritixi Lithos dan 1 byte terima kasih kepada Martin Ender
Menggunakan pengindeksan 0. Input memiliki ruang tambahan di setiap baris.
Cobalah online!
Penjelasan
Di sini kita mengganti setiap angka pada baris pertama dengan jumlah angka sebelum angka yang sama pada baris kedua.
Kemudian, kami menghapus baris kedua, hanya menyisakan baris pertama yang baru sebagai output.
sumber
Jawa ,
10481 byte1 byte berkat Business cat.
Cobalah online!
sumber
C #, 32 Bytes
Ini adalah kode sebagai ekspresi lambda, jadi harus valid.
Solusinya adalah dengan indeks berbasis 0. Saya pikir ini cukup maju bagaimana cara kerjanya - itu hanya mengambil item dari n dan memilih indeks item dalam m.
sumber
Oktaf, 25 byte
Cobalah online!
sumber
Haskell , 32 byte
Cobalah online! Diindeks satu.
Upaya lain:
sumber
k, 1
Ini adalah operator bawaan
k
dan menggunakan pengindeksan berbasis nol.Contoh:
sumber
05AB1E , 5 byte
Cobalah online!
sumber
Jelly , 3 byte
Cobalah online!
Spesifikasi
sumber
JavaScript (ES6), 28 byte
Mengambil array dalam sintaks currying
(n)(m)
. Diindeks 0.sumber
Perl 6 , 31 byte
Cobalah
Diperluas:
0 diindeks
sumber
Japt , 4 byte
Uji secara online!
Penjelasan
Tidak banyak yang bisa dijelaskan di sini, tetapi memamerkan fitur menarik dari Japt. Biasanya, Anda akan melewatkan fungsi
m
, seperti:Ini pada dasarnya
U.map(X => V.indexOf(X))
(yangU
tersirat). Namun, ketika Anda hanya melakukan satu operasi antara dua nilai (dib
sini, diV
danX
), Anda bisa memberikan operator dan nilai lainnya dan Japt akan membuat fungsi dari itu. Ini berartimX{X+2}
bisa bermain golfm+2
.Namun, ini tidak berfungsi ketika nilainya berada di urutan yang salah (
mbV
akan kependekan darimX{XbV}
). Untuk menyiasatinya, Anda dapat menambahkan tanda seru ke operator, yang memberitahu Japt untuk menukar operan. Ini membutuhkan byte tambahan, tetapi beberapa byte lebih pendek daripada alternatifnya. Dan sekarang Anda tahu lebih banyak tentang Japt.sumber
MATL , 2 byte
Ini menggunakan pengindeksan 1. Cobalah online!
Penjelasan
Fungsi-meta
&
menunjukkan bahwa fungsi berikutnya akan menggunakan spesifikasi sekunder masuk / keluar default (khusus fungsi). Untuk functionm
(ismember
),&
menentukan bahwa output keduanya akan diproduksi. Ini berisi indeks (kejadian pertama) setiap entri input pertama pada input kedua.sumber
Haskell, 34 byte
Contoh penggunaan:
[5,3,4,9,7,5,7] # [3,4,5,7,9]
->[3,1,2,5,4,3,4]
Built-in
elemIndex
dalamData.List
dan karena itu lebih lama dari versi di atas. Lingkaran luar melewatin
dan loop dalam melalui pasangan di(i,e)
manai
adalah indekse
inm
. Jagai
dimanae
sama dengan elemen saat inin
.sumber
R,
205 byte1-diindeks;
match
adalah fungsi bawaan yang menemukan indeks pada input kedua dari elemen pertama, yaitumatch(n,m)
memberikan jawaban yang diinginkanterima kasih kepada @flodel untuk menunjukkan bahwa mengembalikan fungsi dapat diterima sebagai jawaban!
Cobalah online!
sumber
match
(5 byte) saja akan menjadi solusi yang dapat diterima.Pyth , 4 byte
Cobalah online!
Perhatikan bahwa ini menggunakan pengindeksan 0.
sumber
J , 2 byte
Ini bukan program lengkap, tetapi fungsi bawaan.
Gunakan seperti itu:
Cobalah online!
Perhatikan bahwa ini menggunakan pengindeksan 0.
sumber
CJam , 4 byte
Blok anonim yang mengharapkan argumen pada stack dan meninggalkan hasilnya pada stack.
Menggunakan pengindeksan 0.
Cobalah online!
sumber
Haskell, 43 byte
sumber
Clojure, 25 byte
Diindeks 0.
sumber
Perl 5,
3834 byte4 byte disimpan berkat Dada
1-diindeks. Mengambil daftar m dan n sebagai daftar tunggal, seperti
f(@m,@n)
. Thex0
hanya untuk menjaga output dari mulai dengan1,2,3,4,5
, dllsumber
sub{...}
dapat menghemat 2 byte. Selain itu, Anda dapat menggunakanx0
alih-alih&&()
menyimpan dua byte lagi.PHP, 56 Bytes
Versi Online
0 Pengindeksan
output sebagai String
PHP, 65 Bytes
Keluaran sebagai array
PHP, 78 Bytes
solusi dengan
array_map
untuk array tidak unik ganti dengan
array_flip($_GET[1])[$v]
array_search($v,$_GET[1])
sumber
Bash + coreutils, 51
Cobalah online .
Jawaban sebelumnya:
Cobalah online .
sumber
Java 7, 80 byte
Diindeks 0
Penjelasan:
Kode uji:
Coba di sini.
Keluaran:
sumber