Beschreibung der Herausforderung
Eine Langford- Ordnungszeichenfolge Nist wie folgt definiert:
- Die Länge der Zeichenfolge ist gleich
2*N, - Die Zeichenfolge enthält die ersten
NBuchstaben des englischen Alphabets, wobei jeder Buchstabe zweimal vorkommt. - Für jedes Paar von den gleichen Buchstaben gibt es
MBriefe zwischen ihnen, woMist Position ist das Buchstabe im Alphabet (A = 1,B = 2,...,Z = 26).
Zum Beispiel sind die nur zwei möglichen Langford Saiten Ordnung 3sind BCABACund CABACB. Wie Sie sehen können, gibt es in diesen beiden Zeichenfolgen einen Buchstaben zwischen zwei A, zwei Buchstaben zwischen zwei Bund drei Buchstaben zwischen zwei C. Geben Sie bei einer positiven Ganzzahl Nalle Langford-Zeichenfolgen der Reihenfolge aus N(in einem beliebigen vernünftigen Format: Drucken Sie sie einzeln durch einen Zeilenumbruch getrennt aus und geben Sie eine Liste / ein Array zurück ...).
Beispiel Ein- / Ausgänge
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> #
Anmerkungen
- Langford-Ordnungsketten
Nkönnen nur hergestellt werden, wennN ≡ 0 (mod 4)oderN ≡ 3 (mod 4), - Sie können sowohl Klein- als auch Großbuchstaben verwenden.
- Sie können auch nachfolgende Nummern verwenden (
012...oder123...anstelle vonABC...) - Die Reihenfolge der Zeichenfolgen, in denen sie als Ausgabe angezeigt werden sollen, ist nicht angegeben.
- Die Ausgabe kann sehr langwierig sein (zum Beispiel gibt es über 5 Billionen verschiedene Langford-Ordnungszeichenfolgen
20), sodass Ihr Programm nicht alle ausgeben muss, sondern theoretisch funktionieren muss (bei genügend Zeit und Speicher). - Diese Herausforderung wurde von / r / dailyprogrammer übernommen , alle Gutschriften gehen an / u / XenophonOfAthens