Sfida:
Data una stringa contenente solo lettere maiuscole e / o minuscole (qualunque preferiate), mettetela in tape
orizzontale per sistemarla. Lo facciamo controllando la differenza di due lettere adiacenti nell'alfabeto (ignorando il giro e solo andando avanti), e riempiendo lo spazio con tutto TAPE
/ tape
quanto avremmo bisogno.
Esempio:
Ingresso: abcmnnnopstzra
Uscita:abcTAPETAPETmnnnopTAstTAPETzra
Perché?
- Between
c
andm
dovrebbe esseredefghijkl
(lunghezza 9), quindi lo riempiamo diTAPETAPET
; - Between
p
es
dovrebbe essereqr
(lunghezza 2), quindi lo riempiamo diTA
; - Tra
t
ez
dovrebbe essereuvwxy
(lunghezza 5), quindi lo riempiamoTAPET
.
Regole della sfida:
- La differenza si applica solo in avanti, quindi nessun nastro tra
zra
. - È possibile avere più lettere uguali simili
nnn
. - È consentito accettare l'input in qualsiasi formato ragionevole. Può essere una singola stringa, array di stringhe / elenco, array di caratteri / elenco, ecc. L'output ha la stessa flessibilità.
- È consentito utilizzare lettere minuscole e / o maiuscole nel modo desiderato. Questo vale sia per l'input, che per l'output e
TAPE
. - È possibile che non
TAPE
sia necessario, nel qual caso l'ingresso rimane invariato.
Regole generali:
- Questo è code-golf , quindi vince la risposta più breve in byte.
Non lasciare che le lingue di code-golf ti scoraggino dal pubblicare risposte con lingue non codegolfing. Prova a trovare una risposta il più breve possibile per "qualsiasi" linguaggio di programmazione. - Per la tua risposta valgono regole standard , quindi puoi usare STDIN / STDOUT, funzioni / metodo con i parametri corretti e tipo di ritorno, programmi completi. La tua chiamata.
- Sono vietate le scappatoie predefinite .
- Se possibile, aggiungi un link a un test per il tuo codice.
- Inoltre, si prega di aggiungere una spiegazione, se necessario.
Casi test:
Input: "abcmnnnopstzra"
Output: "abcTAPETAPETmnnnopTAstTAPETzra"
Input: "aza"
Output: "aTAPETAPETAPETAPETAPETAPEza"
Input: "ghijk"
Output: "ghijk"
Input: "aabbddeeffiiacek"
Output: "aabbTddeeffTAiiaTcTeTAPETk"
Input: "zyxxccba"
Output: "zyxxccba"
Input: "abccxxyz"
Output: "abccTAPETAPETAPETAPETAPExxyz"
Input: "abtapegh"
Output: "abTAPETAPETAPETAPETtaTAPETAPETAPETApeTgh"
Input: "tape"
Output: "taTAPETAPETAPETApe"
ab[TAPETAPETAPETAPET]TA[TAPETAPETAPETA]PE[T]gh
(aggiunto il []
per renderlo più leggibile).