Змагання
Вам дано:
- не порожній, несортований список h позитивних цілих чисел (копиця сіна)
- додатне ціле число n (голка)
Ваше завдання - повернути список усіх унікальних десяткових конкатетацій перестановок h , двійкове подання яких містить двійкове представлення n .
Приклади
h = [1, 2, 3]
n = 65Є лише одна відповідна конкатенація, тому очікуваний вихід є
[321]
.h = [1, 2, 3]
n = 7Цього разу є три конкатенації, які містять двійковий візерунок 111 . Очікуваний вихід -
[123, 231, 312]
.h = [12, 3]
n = 7Доступні лише дві перестановки, і обидві збігаються. Очікуваний вихід -
[123, 312]
.h = [1, 2, 2]
n = 15Єдина відповідна конкатенація - 122 ( 1111010 у двійковій, яка містить 1111 ), тому очікуваний вихід є
[122]
. Зауважте, що дві перестановки насправді призводять до 122, але вам не дозволяється виводити[122, 122]
.
Роз'яснення та правила
- Ви можете взяти голку як ціле число (
65
), рядок, що представляє десяткове значення ("65"
), або рядок, що представляє двійкове значення ("1000001"
). - Ви можете приймати стоги сіна як нативний масив / об’єкт / набір цілих чисел (
[11,12,13]
), нативний масив / об’єкт / набір рядків, що представляють десяткові значення (["11","12","13"]
), або розмежувану рядок десяткових значень ("11 12 13"
або"11,12,13"
). Ви також можете вибрати варіант, використовуючи масиви цифр (наприклад[[1,1],[1,2],[1,3]]
). - Вихід повинен відповідати одному з форматів, описаних вище для стога сіна, але не обов'язково того самого.
- Ви не повинні обробляти стоги сіна, найвища десяткова конкатенація яких перевищує найвище представлене ціле число, яке не підписується на вашій мові.
- Крім цього, ваш код теоретично повинен підтримувати будь-який вхід - якщо вважати, що йому достатньо часу та пам'яті.
- Це
СПАРТА!код-гольф , тому найкоротша відповідь у байтах виграє!
Тестові справи
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"]
і ["1","23"]
два різних стоги.
set([(1, 2, 2)])
. Це дійсно чи я повинен позбутисяset
?