Tantangan
Anda diberikan:
- daftar h bilangan bulat positif tidak kosong yang tidak disortir (tumpukan jerami)
- bilangan bulat positif n (jarum)
Tugas Anda adalah mengembalikan daftar semua gabungan desimal unik permutasi dari h yang representasi binernya berisi representasi biner dari n .
Contohnya
h = [1, 2, 3]
n = 65Hanya ada satu rangkaian yang cocok, jadi output yang diharapkan adalah
[321]
.h = [1, 2, 3]
n = 7Kali ini, ada tiga rangkaian yang berisi pola biner 111 . Output yang diharapkan adalah
[123, 231, 312]
.h = [12, 3]
n = 7Hanya dua permutasi yang tersedia dan keduanya cocok. Output yang diharapkan adalah
[123, 312]
.h = [1, 2, 2]
n = 15Satu-satunya gabungan yang cocok adalah 122 ( 1111010 dalam biner, yang berisi 1111 ), sehingga output yang diharapkan adalah
[122]
. Perhatikan bahwa dua permutasi sebenarnya mengarah ke 122 tetapi Anda tidak diizinkan untuk menghasilkan[122, 122]
.
Klarifikasi dan aturan
- Anda dapat menggunakan jarum sebagai integer (
65
), string yang mewakili nilai desimal ("65"
) atau string yang mewakili nilai biner ("1000001"
). - Anda dapat mengambil tumpukan jerami sebagai array / objek / set integer asli (
[11,12,13]
), array / objek / set string asli yang mewakili nilai desimal (["11","12","13"]
), atau string nilai desimal ("11 12 13"
atau"11,12,13"
) yang dibatasi . Anda juga dapat memilih varian menggunakan array angka (seperti[[1,1],[1,2],[1,3]]
). - Output harus mengikuti salah satu format yang dijelaskan di atas untuk tumpukan jerami, tetapi tidak harus yang sama.
- Anda tidak seharusnya menangani tumpukan jerami yang gabungan angka desimalnya lebih tinggi daripada bilangan bulat unsigned representable tertinggi dalam bahasa Anda.
- Selain itu, kode Anda secara teoritis harus mendukung input apa pun - dengan asumsi itu diberikan cukup waktu dan memori.
- Ini
SPARTA!kode-golf , jadi jawaban tersingkat dalam byte menang!
Uji kasus
Haystack | Needle | Output
---------------------+----------+-----------------------------------
[ 1, 2, 3 ] | 65 | [ 321 ]
[ 1, 2, 3 ] | 7 | [ 123, 231, 312 ]
[ 12, 3 ] | 7 | [ 123, 312 ]
[ 1, 2, 2 ] | 15 | [ 122 ]
[ 1, 2 ] | 7 | []
[ 12, 34, 56 ] | 21 | [ 125634, 341256, 345612, 563412 ]
[ 1, 2, 3, 4, 5 ] | 511 | [ 53241 ]
[ 1, 3, 5, 7, 9 ] | 593 | [ 37519, 51793, 75913, 75931 ]
[ 11, 12, 13, 14 ] | 12141311 | [ 12141311 ]
[ 1, 2, 1, 2, 1, 2 ] | 1015 | [ 221112 ]
["12","3"]
dan ["1","23"]
dua tumpukan jerami yang berbeda.
set([(1, 2, 2)])
. Apakah ini valid atau haruskah saya singkirkanset
?