Mini-golf a 9 buche: descrizione
- 9 sfide (per lo più abbastanza facili) di golf con codice di varia difficoltà
- Sanzioni per l'utilizzo della stessa lingua più di una volta
- Tutte le sfide su un tema specifico (questo tema: manipolazione del testo)
- L'input e l'output possono essere ragionevoli (es. STDIN e STDOUT, lettura / scrittura in un file, argomento della funzione e valore di ritorno, ecc.) Ma NON devono essere codificati nel programma
- Fortemente ispirato a 9 Hole Challenge e Text Mechanic
fori
Sacca da golf
Prendi due stringhe come input.
Emette il conteggio dei caratteri della prima stringa, ignorando ogni occorrenza di qualsiasi carattere nella seconda stringa.
Esempio:f("foobarbaz", "ao")
=>5
Un pre-testo per il golf
Prendi due stringhe come input.
Emette la prima stringa, con ogni riga preceduta dal secondo.
Esempio:f("foo\nbar\nbaz", "a")
=>"a foo\na bar\na baz"
Guerra di schede vs spazi
Prendi come input una stringas
, un numeron
e un valore booleanob
(specificato come preferisci).
Seb
è vero, outputs
con ogni scheda convertita inn
spazi.
Altrimenti, outputs
con ognin
spazio convertito in schede.
Esempio:f("if (x) {\n\tdoStuff();\n}", 4, true)
=>"if (x) {\n[sp][sp][sp][sp]doStuff();\n}"
([sp]
significa spazio)Pilastri del golf
Prendi una stringa
s
, un numeron
e un altro numerom
come input.
Outputs
in colonne din
righe ciascuna em
caratteri per colonna.
Hanno anche un'imbottitura di uno spazio tra le colonne.
Esempio:f("this is some placeholder text, foo bar baz...", 3, 5)
=>this aceho foo is so lder bar b me pl text, az...
Lettere amichevoli
Prendi una stringas
e un numeron
come input.
Stampa il gruppo din
lettere più comune ins
.
Se è presente un pareggio, emettere uno o tutti.
Esempio:f("abcdeabcfghiabc", 3)
=>"abc"
Lettere di
Prendi una stringa come input.uovastrapazzate per colazione
Stampa la stringa con tutte le sue parole criptate (ordine delle lettere randomizzato) tranne la loro prima e ultima lettera.
Per semplicità, supponiamo che l'input sia un elenco di "parole", lo spazio separato (ovvero in@$&_():;" foo bar
,@$&_():;"
è considerato una "parola")
Esempio:f("this is a sentence that will be scrambled")
=>"tihs is a stcneene that wlil be sclamrbed"
ASCIIfy
Prendi una stringa come input.
Se la stringa contiene solo numeri e spazi, sostituisci i numeri con i rispettivi caratteri ASCII (rimuovendo gli spazi).
Altrimenti, fai il contrario (caratteri in numeri).
Esempio:f("ASCIIfy challenge")
=>"65 83 67 73 73 102 121 32 99 104 97 108 108 101 110 103 101"
Esempio 2:f("65 83 67 73 73 102 121 32 99 104 97 108 108 101 110 103 101")
=>"ASCIIfy challenge"
Trasformazione mini-mini-markdown
Prendi una stringa come input.
Emette la stringa convertita con mini-markdown, come utilizzata nei commenti su Stack Exchange.
Si tratta di una versione ancora mini-er: avete solo bisogno di gestire**bold**
,*italics*
e`code`
.
Non è necessario gestire l'annidamento non valido, ad esempio**foo *bar** baz*
. Supponi anche che quando vedi un delimitatore (*
o`
), significherà sempre formattare (cioète**st**ing
=>te<b>st</b>ing
, efoo* bar *baz
=>foo<i> bar </i>baz
).
Esempio:f("**foo** *bar **baz*** `qux`")
=>"<b>foo</b> <i>bar <b>baz</b></i> <code>qux</code>"
Solo i migliori personaggi
Prendi una stringas
, un numeron
e una stringar
come input.
Stampa iln
carattere di ogni parola ins
. (0-indicizzati, le parole sono separate da spazio).
Se la lunghezza della parola è inferiore an
, utilizzare invecer
per quella parola.
Esempio:f("this is a test sentence foo bar baz", 2, "-")
=>"i--snorz"
punteggio
Il tuo punteggio è la somma dei conteggi dei personaggi dei tuoi programmi. Per ogni lingua ripetuta, moltiplicare per il 110%. Ad esempio, se hai tre soluzioni Ruby e il conteggio totale dei caratteri di tutte le tue soluzioni è 1000, il tuo punteggio è 1000 * 1,1 * 1,1 = 1210. Arrotondare se si dispone di un punteggio non intero.
In bocca al lupo!
_
non importa da quando ho specificato di non includerlo. Ho modificato per chiarire alcuni degli altri.
**foo***bar**baz*
?