El reto
Te dan:
- una lista no ordenada no ordenada h de enteros positivos (el pajar)
- un entero positivo n (la aguja)
Su tarea es devolver la lista de todas las concatenaciones decimales únicas de permutaciones de h cuya representación binaria contiene la representación binaria de n .
Ejemplos
h = [1, 2, 3]
n = 65Solo hay una concatenación coincidente, por lo que el resultado esperado es
[321]
.h = [1, 2, 3]
n = 7Esta vez, hay tres concatenaciones que contienen el patrón binario 111 . La salida esperada es
[123, 231, 312]
.h = [12, 3]
n = 7Solo hay dos permutaciones disponibles y ambas coinciden. La salida esperada es
[123, 312]
.h = [1, 2, 2]
n = 15La única concatenación coincidente es 122 ( 1111010 en binario, que contiene 1111 ), por lo que la salida esperada es
[122]
. Tenga en cuenta que dos permutaciones en realidad conducen a 122 pero no se le permite salir[122, 122]
.
Aclaraciones y reglas.
- Puede tomar la aguja como un entero (
65
), una cadena que representa un valor decimal ("65"
) o una cadena que representa un valor binario ("1000001"
). - Puede tomar el pajar como una matriz / objeto / conjunto nativo de enteros (
[11,12,13]
), una matriz / objeto / conjunto nativo de cadenas que representan valores decimales (["11","12","13"]
) o una cadena delimitada de valores decimales ("11 12 13"
o"11,12,13"
). También puede optar por una variante utilizando matrices de dígitos (como[[1,1],[1,2],[1,3]]
). - La salida debe seguir uno de los formatos descritos anteriormente para el pajar, pero no necesariamente el mismo.
- Se supone que no debe manejar pajar cuya concatenación decimal más alta es mayor que el entero sin signo representable más alto en su idioma.
- Aparte de eso, su código debería admitir teóricamente cualquier entrada, suponiendo que se le dé suficiente tiempo y memoria.
- ¡Esto es
SPARTA!code-golf , por lo que gana la respuesta más corta en bytes.
Casos de prueba
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"]
y ["1","23"]
son dos montones de heno distintas.
set([(1, 2, 2)])
. ¿Es válido o debo deshacerme de élset
?