Date due stringhe, trova la tabella di traduzione ( cifra di sostituzione ) tra le due, se la traduzione non è possibile, l'output è falso. La risposta deve essere ridotta a icona e creata da sinistra a destra. Il primo carattere da tradurre tra le parole deve essere il primo nella tabella di traduzione. Inoltre, qualsiasi lettera non tradotta (nello stesso posto in cui era originariamente), NON dovrebbe trovarsi nella tabella di traduzione.
Probabilmente il più facilmente definito attraverso esempi:
Casi validi
"bat", "sap" => ["bt","sp"]
Notare l'ordinamento, un output di ["tb","ps"]
non è valido per questa sfida.
"sense", "12n12" => ["se","12"]
Nota come n
non viene tradotto perché è una relazione 1 a 1.
"rabid", "snail" => ["rabd","snal"]
Nota come i
non viene tradotto perché è una relazione 1 a 1.
"ass", "all" => ["s","l"]
A non è incluso, rimane lo stesso, s
può essere mappato a l
causa della corrispondenza del modello.
"3121212", "ABLBLBL" => ["312","ABL"]
Abbina perfettamente il modello.
Casi falsi
"banana", "angular" => false
(non della stessa lunghezza, impossibile).
"animal", "snails" => false
(ogni personaggio può essere usato UNA VOLTA su ciascun lato della traduzione).
"can","cnn" => false
(n viene utilizzato implicitamente nella traduzione, pertanto la definizione di una tabella di traduzione con n-> a non sarebbe valida)
Pertanto, [aimal,sails]
è una risposta non valida, rendendo questa falsa.
"a1", "22" => false
Vedi "avvertenze", questo è elencato come falsy. In questo caso, è perché a
e 1
non è possibile mappare entrambi 2
. (Ogni personaggio può essere usato UNA VOLTA su ciascun lato della traduzione).
Questa risposta sembra essere un buon punto di riferimento: /codegolf//a/116807/59376
Se hai domande sulla funzionalità di due coppie di parole non elencate, rinvia a questa implementazione.
Regole I / O
- L'input può essere un array di 2 elementi o come 2 input separati.
- L'output può essere delimitato da array o newline / spazio, in modo simile a come l'ho mostrato.
- L'output falso può essere 0, -1 o falso. Anche l'output errato / vuoto va bene.
- Sei garantito che
a
non sarà ugualeb
e néa
néb
sarà vuoto. a
eb
sono sequenze di lettere stampabili solo in ASCII.
Avvertenze
- Le traduzioni devono avvenire da sinistra a destra, vedi esempio 1.
- Non devi emettere caratteri che rimangono gli stessi.
- Il tuo programma può contenere solo due stringhe
a
eb
. - Ogni personaggio può essere usato UNA VOLTA su ciascun lato della traduzione. Questo è ciò che rende la traduzione dal
snails
alanimals
impossibile. - I sostituti ricorsivi non dovrebbero verificarsi. Esempio di sostituzione ricorsiva:
"a1","22"->[a1,12]
dove a viene prima sostituito da 1, quindi entrambi i risultanti 1 vengono sostituiti con 2. Questo non è corretto, supponiamo che tutte le traduzioni avvengano indipendentemente l'una dall'altra, il che significa che si tratta di una falsa. Significato: "a1" con tabella di traduzione di [a1,12] restituisce 12 (non 22)