Descripción del desafío
Una cadena de orden de LangfordN se define de la siguiente manera:
- La longitud de la cadena es igual a
2*N, - La cadena contiene las primeras
Nletras del alfabeto inglés, cada letra aparece dos veces, - Para cada par de las mismas letras, hay
Mcartas entre ellos, dondeMes la posición de esa letra del alfabeto (A = 1,B = 2,...,Z = 26).
Por ejemplo, las únicas dos posibles cadenas de orden de Langford 3son BCABACy CABACB. Como puede ver, en ambas cadenas hay una letra entre dos A, dos letras entre Btres y tres letras entre ellas C. Dado un entero positivo N, genera todas las cadenas de orden de Langford N(en cualquier formato razonable: imprímalas una por una separadas por una nueva línea, devuelve una lista / matriz ...).
Muestra de entradas / salidas
3: [CABACB, BCABAC]
4: [DACABDCB, BCDBACAD]
5: # no output #
7: [GCFBECBDGFEADA, GBFCBDECGFDAEA, GBDFBCEDGCFAEA, GCAFACDEGBFDBE, GADAFCEDGCBFEB, GACAFDCEGBDFBE, GDAEAFDCGEBCFB, GBDEBFCDGECAFA, EGBFCBEDCGFADA, CGDFCBEDBGFAEA, EGDAFAEDCGBFCB, EGBCFBECDGAFAD, AGABFDBECGDFCE, EGADAFECDGBCFB, AGABEFBCDGECFD, BGDBCEFDCGAEAF, FBGDBCEFDCGAEA, BFGBAEADFCGEDC, CFGACADEFBGDBE, EAGAFBEDBCGFDC, BCGBFCEADAGFED, DAGAFDBECBGFCE, EBGCBFECDAGAFD, CEGDCFBEDBGAFA, CEGBCFBEDAGAFD, BDGBCFDECAGAFE, EFAGACEDFCBGDB, DFAGADEBFCBGEC, AFAGBDEBFCDGEC, DFAGADCEFBCGBE, ECFGBCEBDFAGAD, DEFGADAECFBGCB, CDFGCBDEBFAGAE, EBDGBFEDACAGFC, CDEGCFDAEABGFB, AEAGCDFECBDGBF, FAEAGCDFECBDGB, DFCEGDCBFEBAGA, BFCBGDCEFADAGE, ECFDGCEBDFBAGA, DAFAGDCEBFCBGE, BCFBGCDEAFADGE, AEAFGBDEBCFDGC, ADAFGCDEBCFBGE, AFACEGDCFBEDBG, BFCBEGCDFAEADG, EBFDBGECDFACAG, BEFBCGDECFADAG, EBDFBGEDCAFACG, AEAFCGDECBFDBG, AEADFGCEDBCFBG, ADAEFGDBCEBFCG]
12: # <216288 strings> #
Notas
- Las cadenas de orden de Langford
Nsolo se pueden producir cuandoN ≡ 0 (mod 4)oN ≡ 3 (mod 4), - Puede usar letras minúsculas y mayúsculas,
- También puede usar números posteriores (
012...o en123...lugar deABC...) - El orden de las cadenas en las que deberían aparecer como salida no está especificado,
- La salida puede ser bastante larga (por ejemplo, hay más de 5 billones de cadenas de orden de Langford distintas
20), por lo que su programa en realidad no necesita generarlas todas, pero tiene que funcionar en teoría (dado el tiempo y la memoria suficientes). - Este desafío ha sido tomado de / r / dailyprogrammer , todo el crédito va a / u / XenophonOfAthens

Respuestas:
CJam (23 bytes)
Demo en línea . Este es un bloque anónimo (función) que toma la entrada en la pila y deja la salida en la pila en forma de una matriz de matrices de enteros secuenciales basados en 0.
fuente
Brachylog , 43 bytes
Pruébalo en línea!
fuente