Suggerimenti per giocare a golf in ///


12

Quali consigli generali hai per giocare a golf in /// ? Sto cercando idee che possano essere applicate a problemi di code-golf e che siano anche in qualche modo specifiche per /// (ad esempio "rimuovere spazi non necessari" non è una risposta). I suggerimenti per itflabtijtslwi e Lines sono in tema e validi anche qui.

Si prega di inviare un suggerimento per risposta.

Risposte:


5

Utilizzare //come sostituto

Quando si definiscono un gruppo di sostituzioni, ad esempio:

/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 byte). Puoi usare //come sostituto:

/~/\/\///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 byte).


4

I blocchi /// incompleti non vengono stampati

Si noti che questa riga di codice

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

stampa solo Overflow- la parte da allora in /ignorepoi non è inclusa nell'output, perché ///stampa solo le cose nella sua terza parte barra.

Prova il blocco incompleto online!

È comunque ancora considerato dal sostituto: se dovessimo iniettare una barra, le cose cambiano:

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

Provalo online!

L'output qui è Overflowdoit, perché sostituendolo xcon /reso sintassi valida.


4

Quando si espande su una base e si stampano risultati intermedi, incorporare le iterazioni precedenti in quelle future

Sembrava un po 'contorto. Ciò che intendo potrebbe essere meglio descritto usando una risposta effettiva. Questa sfida richiede questo output specifico:

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.

Una soluzione ingenua potrebbe essere:

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

Notate come il modello 1, 12, 123... si ripete? Bene, non quando lo fai:

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

Ancora una volta, grazie a Martin Ender per averlo segnalato!


2

Utilizzare un carattere alla fine del codice per gestire i casi limite

Quando si dispone di un pezzo di ///codice che gestisce tutto tranne un caso, è possibile utilizzare un carattere a margine del codice per gestire il caso limite.

Esempio: Unario aggiunge due numeri insieme a meno che il secondo numero non sia 7, nel qual caso viene appena emesso il primo numero.

Codice che gestisce tutto tranne il caso "il secondo numero è 7":

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

Aggiungendo *a alla fine del codice, possiamo gestire il caso limite sostituendolo +0000000*con nulla (è necessario includere il +per assicurarsi che il numero non sia maggiore di 7). Assicurati di includere il codice alla fine prima dell'input per ripulirlo.

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

Provalo online!

Per un esempio di "mondo reale", ho usato questo trucco su alcuni dei problemi di "Jimmy":

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.