Connexes: Défi assez similaire (mais beaucoup plus facile) horizontalement: Là, je l'ai corrigé (avec du ruban adhésif)
Défi:
Étant donné une chaîne contenant uniquement des lettres majuscules et / ou minuscules (selon ce que vous préférez) et des nouvelles lignes, mettez rope
verticalement pour le corriger. Nous faisons cela en vérifiant la différence de deux lettres adjacentes dans l'alphabet (en ignorant le bouclage et en ne descendant que), et en remplissant l'espace avec autant ROPE
/ rope
que nous aurions besoin.
REMARQUE: Une autre différence clé entre ce défi et le défi Là je l'ai résolu (avec une bande) est que nous ne perdons pas rope
ce temps comme nous l'avons fait avec le tape
(suggéré par @JonathanAllan dans la première partie du défi).
Exemple:
Contribution:
abc
bcd
ddd
eex
gfz
hka
imh
Production:
abc
bcd
Rdd
deE
efR
OPO
gEP
hRE
iOR
kO
PP
mE
R
O
P
E
R
O
P
E
R
O
x
P
z
a
E
R
O
P
E
R
h
Pourquoi?
- Entre
b
etd
dans la colonne 1 devrait êtrec
(longueur 1), nous remplissons donc ceci avecR
; - Entre
e
etg
dans la colonne 1 devrait êtref
(longueur 1), nous remplissons donc ceci avecO
; - Entre
f
etk
dans la colonne 2 devrait êtreghij
(longueur 4), nous remplissons donc ceci avecPERO
; - Entre
k
etm
dans la colonne 2 devrait êtrel
(longueur 1), nous remplissons donc ceci avecP
; - Entre
d
etc
dans la colonne 3 devrait êtreefghijklmnopqrstuvw
(longueur 19), nous remplissons donc ceci avecEROPEROPEROPEROPERO
; - Entre
x
etz
dans la colonne 3 devrait êtrey
(longueur 1), nous remplissons donc ceci avecP
; - Entre
a
eth
dans la colonne 3 devrait êtrebcdefg
(longueur 6), nous remplissons donc cela avecEROPER
.
Règles du défi:
- La différence ne s'applique que vers le bas, donc pas de corde entre
za
(colonne 3 dans l'exemple ci-dessus). - Il est possible d'avoir plusieurs des mêmes lettres adjacentes comme
dd
(colonne 3 dans l'exemple ci-dessus). - Vous continuerez à utiliser
ROPE
une colonne à la fois pour ne pas gaspiller de pièces (suggéré par @JonathanAllan dans la partie 1 du défi). - Vous êtes autorisé à prendre l'entrée dans n'importe quel format raisonnable. Peut être une chaîne unique, un tableau de chaînes / liste, une matrice de caractères, etc. La sortie a la même flexibilité.
- Vous êtes autorisé à utiliser les minuscules et / ou les majuscules comme vous le souhaitez. Cela s'applique à la fois à l'entrée, à la sortie et à
ROPE
. - Les espaces de fin sont facultatifs (notez que la quantité correcte d'espaces de tête est obligatoire pour que les colonnes soient correctes).
Toute quantité de nouvelles lignes de fin et / ou de début est également facultative. - Vous pouvez supposer que tous les cas de test auront la même longueur sur toutes les lignes, donc
a\naa
/[[a][a,a]]
ne serait pas une entrée valide. - Il est possible que non
ROPE
soit nécessaire, auquel cas l'entrée reste inchangée.
Règles générales:
- C'est le code-golf , donc la réponse la plus courte en octets l'emporte.
Ne laissez pas les langues de golf de code vous décourager de publier des réponses avec des langues non-golfeur de code. Essayez de trouver une réponse aussi courte que possible pour «n'importe quel» langage de programmation. - Des règles standard s'appliquent à votre réponse, vous êtes donc autorisé à utiliser STDIN / STDOUT, des fonctions / méthodes avec les paramètres appropriés et des programmes complets de type retour. Ton appel.
- Les failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code.
- Veuillez également ajouter une explication si nécessaire.
Cas de test:
As string:
Input: "abc\nbcd\nddd\neex\ngfz\nhka\nimh"
Output: "abc\nbcd\nRdd\ndeE\nefR\nOPO\ngEP\nhRE\niOR\n kO\n PP\n mE\n R\n O\n P\n E\n R\n O\n P\n E\n R\n O\n x\n P\n z\n a\n E\n R\n O\n P\n E\n R\n h"
As array-matrix:
Input: [[a,b,c],[b,c,d],[d,d,d],[e,e,x],[g,f,z],[h,k,a],[i,m,h]]
Output: [[a,b,c],[b,c,d],[R,d,d],[d,e,E],[e,f,R],[O,P,O],[g,E,P],[h,R,E],[i,O,R],[ ,k,O],[ ,P,P],[ ,m,E],[ , ,R],[ , ,O],[ , ,P],[ , ,E],[ , ,R],[ , ,O],[ , ,P],[ , ,E],[ , ,R],[ , ,O],[ , ,x],[ , ,P],[ , ,z],[ , ,a],[ , ,E],[ , ,R],[ , ,O],[ , ,P],[ , ,E],[ , ,R],[ , ,h]]
As string:
Input: "a\nz\na"
Output: "a\nR\nO\nP\nE\nR\nO\nP\nE\nR\nO\nP\nE\nR\nO\nP\nE\nR\nO\nP\nE\nR\nO\nP\nE\nz\na"
As array-matrix:
Input: [[a],[z],[a]]
Output: [[a],[R],[O],[P],[E],[R],[O],[P],[E],[R],[O],[P],[E],[R],[O],[P],[E],[R],[O],[P],[E],[R],[O],[P],[E],[z],[a]]
As string:
Input: "zz\nyy\nxx\nxx\ncc\ncc\nbb\nad"
Output: "zz\nyy\nxx\nxx\ncc\ncc\nbb\naR\n d"
As array-matrix:
Input: [[z,z],[y,y],[x,x],[x,x],[c,c],[c,c],[b,b],[a,d]]
Output: [[z,z],[y,y],[x,x],[x,x],[c,c],[c,c],[b,b],[a,R],[ ,d]]
As string:
Input: "a\nb\nc\nc\nx\nx\ny\nz"
Output: "a\nb\nc\nc\nR\nO\nP\nE\nR\nO\nP\nE\nR\nO\nP\nE\nR\nO\nP\nE\nR\nO\nP\nE\nx\nx\ny\nz"
As array-matrix:
Input: [[a],[b],[c],[c],[x],[x],[y],[z]]
Output: [[a],[b],[c],[c],[R],[O],[P],[E],[R],[O],[P],[E],[R],[O],[P],[E],[R],[O],[P],[E],[R],[O],[P],[E],[x],[x],[y],[z]]
As string:
Input: "zai\nybj\nxcq\nxcu\ncxw\ncxw\nbyr\nazw"
Output: "zai\nybj\nxcR\nxcO\ncRP\ncOE\nbPR\naEO\n Rq\n OP\n PE\n ER\n Ru\n OO\n Pw\n Ew\n Rr\n OP\n PE\n ER\n RO\n Ow\n P \n E \n x \n x \n y \n z "
As array-matrix:
Input: [[z,a,i],[y,b,j],[x,c,q],[x,c,u],[c,x,w],[c,x,w],[b,y,r],[a,z,w]]
Output: [[z,a,i],[y,b,j],[x,c,R],[x,c,O],[c,R,P],[c,O,E],[b,P,R],[a,E,O],[ ,R,q],[ ,O,P],[ ,P,E],[ ,E,R],[ ,R,u],[ ,O,O],[ ,P,w],[ ,E,w],[ ,R,r],[ ,O,P],[ ,P,E],[ ,E,R],[ ,R,O],[ ,O,w],[ ,P, ],[ ,E, ],[ ,x, ],[ ,x, ],[ ,y, ],[ ,z, ]]
As string:
Input: "asdljasdjk"
Output: "asdljasdjk"
As array-matrix:
Input: [[a,s,d,l,j,a,s,d,j,k]]
Output: [[a,s,d,l,j,a,s,d,j,k]]
As string:
Input: "asdljasdjk\nlkawdasuhq\nasjdhajksd"
Output: "asdljasdjk\nRkaOdasPhR\nOPOPEajEPO\nPEPER REP\nERERO ORE\nROROh POR\nOPOP EPq\nPEPE ROd\nERER OR \nRsRO PO \nO jP EP \nl w RE \na d Os \n P \n E \n R \n O \n u \n k "
As array-matrix:
Input: [[a,s,d,l,j,a,s,d,j,k],[l,k,a,w,d,a,s,u,h,q],[a,s,j,d,h,a,j,k,s,d]]
Output: [[a,s,d,l,j,a,s,d,j,k],[R,k,a,O,d,a,s,P,h,R],[O,P,O,P,E,a,j,E,P,O],[P,E,P,E,R, , ,R,E,P],[E,R,E,R,O, , ,O,R,E],[R,O,R,O,h, , ,P,O,R],[O,P,O,P, , , ,E,P,q],[P,E,P,E, , , ,R,O,d],[E,R,E,R, , , ,O,R, ],[R,s,R,O, , , ,P,O, ],[O, ,j,P, , , ,E,P, ],[l, , ,w, , , ,R,E, ],[a, , ,d, , , ,O,s, ],[ , , , , , , ,P, , ],[ , , , , , , ,E, , ],[ , , , , , , ,R, , ],[ , , , , , , ,O, , ],[ , , , , , , ,u, , ],[ , , , , , , ,k, , ]]
As string:
Input: "re\nop\npo\ner"
Output: "re\noR\npO\neP\n E\n R\n O\n P\n E\n R\n O\n p\n o\n P\n E\n r"
As array-matrix:
Input: [[r,e],[o,p],[p,o],[e,r]]
Output: [[r,e],[o,R],[p,O],[e,P],[ ,E],[ ,R],[ ,O],[ ,P],[ ,E],[ ,R],[ ,O],[ ,p],[ ,o],[ ,P],[ ,E],[ ,r]]
tape
défi est beaucoup plus facile (à mon humble avis). Et oui, vous pouvez sortir un tableau de colonnes.
hope
? L'espoir est plus fort que la corde. (C'est une mauvaise tentative d'humour, pas une vraie question)