Questa attività è piuttosto semplice e utilizza tre caratteri "operatore" distinti. Il vostro compito è, data una semplice sequenza di lettere, eseguire le seguenti operazioni per codificare utilizzando <, >, *. Puoi scegliere di utilizzare lettere maiuscole o minuscole, non è necessario gestirle entrambe.
Spiegazione del cifrario
Il codice è semplice, stai usando le operazioni di incremento e decremento per passare dalla lettera 1 alla lettera finale, *essendo la tua funzione "submit". L'operatore per "incremento" sarà >e "decremento" sarà <.
Un esempio usando la parola adbc:
- Inizia con la prima lettera della parola, genera quella lettera.
a - Quindi, utilizzare
>e<(come brainfuck) per "navigare" dalla lettera corrente a quella successiva.a>comporterebbe un "aumento"adi 1 alla letterab.a<comporterebbezperché stai abbassando la lettera (si avvolge, devi sempre scegliere la direzione risultante nel MINIMO numero di operazioni). - Dopo aver emesso la corretta combinazione minimizzata di
<e>output a*per indicare che abbiamo raggiunto la lettera successiva.
I passaggi per codificare adbcsarebbero:
a # a
a>>>* # ad
a>>>*<<* # adb
a>>>*<<*>* # adbc
Esempi
I passaggi per codificare azasarebbero:
a # a
a<* # az
a<*>* # aza
Altri esempi:
"abcdef" = "a>*>*>*>*>*"
"zyaf" = "z<*>>*>>>>>*"
"zzzzzz" = "z*****"
"z" = "z"
"zm" = "z<<<<<<<<<<<<<*" or "z>>>>>>>>>>>>>*" (equidistant)
"zl" = "z>>>>>>>>>>>>*"
"alphabet" = "a>>>>>>>>>>>*>>>>*<<<<<<<<*<<<<<<<*>*>>>*<<<<<<<<<<<*"
"banana" = "b<*>>>>>>>>>>>>>*<<<<<<<<<<<<<*>>>>>>>>>>>>>*<<<<<<<<<<<<<*" OR "b<*<<<<<<<<<<<<<*>>>>>>>>>>>>>*<<<<<<<<<<<<<*>>>>>>>>>>>>>*"
"abcdefghijklmnopqrstuvwxyz" = "a>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*>*"
"abcdefz" = "a>*>*>*>*>*<<<<<<*"
Regole
- Stiamo codificando non decodificando, quindi non rovinare tutto.
- Puoi presumere che il messaggio conterrà lettere
[A-Z]o[a-z], a tua scelta. - È possibile utilizzare qualsiasi carattere non lettera / numerico / riservato per indicare
*(EG$). - Devi avere il finale
*, non è implicito nelle ripetizioni. - Non puoi assumere stringhe vuote, ma è possibile un singolo carattere.
- Se è equidistante in entrambi i modi dalla lettera successiva, puoi scegliere una direzione.
- Questo è code-golf , vince il conteggio di byte più basso.
Spiega la tua risposta, aiuta gli altri a imparare in questo modo.
zldovrei usare >.
alphabetè secondo me a>>>>>>>>>>>*>>>>*<<<<<<<<*<<<<<<<*>*>>>*<<<<<<<<<<<*e zldovrebbe essere z>>>>>>>>>>>>*e per bananadovrebbe esistere una seconda soluzioneb<*<<<<<<<<<<<<<*>>>>>>>>>>>>>*<<<<<<<<<<<<<*>>>>>>>>>>>>>*
zm. @jorg buone catture, risolto tutti, è stato uno sforzo manuale.
abcdefghijklmnopqrstuvwxyze non è il suo input?