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 nnon viene tradotto perché è una relazione 1 a 1.
"rabid", "snail" => ["rabd","snal"]
Nota come inon viene tradotto perché è una relazione 1 a 1.
"ass", "all" => ["s","l"]
A non è incluso, rimane lo stesso, spuò essere mappato a lcausa 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é ae 1non è 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
anon sarà ugualebe néanébsarà vuoto. aebsono 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
aeb. - Ogni personaggio può essere usato UNA VOLTA su ciascun lato della traduzione. Questo è ciò che rende la traduzione dal
snailsalanimalsimpossibile. - 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)