Conseils pour jouer au golf ///


12

Quels conseils généraux avez-vous pour jouer au golf dans /// ? Je cherche des idées qui peuvent être appliquées aux problèmes de code-golf et qui sont également au moins quelque peu spécifiques à /// (par exemple, "supprimer les espaces inutiles" n'est pas une réponse). Les conseils pour itflabtijtslwi et Lines sont sur le sujet et valables ici également.

Veuillez poster un pourboire par réponse.

Réponses:


5

Utiliser //comme remplacement

Lorsque vous définissez un groupe de remplacements, par exemple:

/a/b//c/d//e/f//g/h//i/j//k/l//m/n//o/p//q/r//s/t//u/v//w/x//y/z/

(65 octets). Vous pouvez utiliser //en remplacement:

/~/\/\///a/b~c/d~e/f~g/h~i/j~k/l~m/n~o/p~q/r~s/t~u/v~w/x~y/z/

(61 octets).


4

Les blocs /// incomplets ne sont pas imprimés

Notez que cette ligne de code

/Stack/Overflow//x/\//Stack/ignore/DoItyignore

imprime uniquement Overflow- la partie à /ignorepartir de n'est pas incluse dans la sortie, car ///imprime uniquement les éléments dans sa troisième partie barre oblique.

Essayez le bloc incomplet en ligne!

Il est cependant toujours pris en compte par le remplaçant: si nous y injections une barre oblique, les choses changeraient:

/Stack/Overflow//x/\//Stack/ignore/doitxignore

Essayez ça en ligne!

La sortie ici est Overflowdoit, car le remplacement xpar la /rend une syntaxe valide.


4

Lors de l'expansion sur une base et de l'impression des résultats intermédiaires, incorporez les itérations précédentes dans les futures

Cela semblait un peu compliqué. Ce que je veux dire pourrait mieux être décrit en utilisant une réponse réelle. Ce défi nécessite cette sortie spécifique:

Steve Ballmer still does not know.
Steve Ballmer still does not know what he did.
Steve Ballmer still does not know what he did wrong.
Steve Ballmer still does not know what he did wrong with mobile.

Une solution naïve pourrait être:

/1/Steve Ballmer still does not know//2/ what he did//3/ wrong//4/ with mobile./1.
12.
123.
1234

Remarquez comment le modèle 1, 12, 123... se répète? Eh bien, pas quand tu fais ça:

/1/Steve Ballmer still does not know//2/1 what he did//3/2 wrong//4/3 with mobile/1.
2.
3.
4.

Encore une fois, merci à Martin Ender de l'avoir signalé!


2

Utilisez un caractère à la fin du code pour gérer les cas marginaux

Lorsque vous avez un morceau de ///code qui gère tous les cas sauf un, vous pouvez utiliser un caractère au bord du code pour gérer le cas de bord.

Exemple: Unaire additionne deux nombres sauf si le deuxième nombre est 7, auquel cas il suffit de sortir le premier nombre.

Code qui gère tous les cas sauf le "deuxième numéro est 7":

/+//<INPUT 1>+<INPUT 2>

En ajoutant un *à la fin du code, nous pouvons gérer le cas de bord en le remplaçant +0000000*par rien (il est nécessaire d'inclure le +pour s'assurer que le nombre n'est pas supérieur à 7). Assurez-vous d'inclure du code à la fin avant l'entrée pour le nettoyer.

/+0000000*///+///*//<INPUT 1>+<INPUT 2>*

Essayez-le en ligne!

Pour un exemple "réel", j'ai utilisé cette astuce sur certains des problèmes "Jimmy":

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.