Basato su stringhe spesse e morbide .
Gli squiggles /\_/\/\__/\/\/\/\_/\_/\
sono divertenti da fare su una tastiera quando sei davvero annoiato. Ma non tutti gli squiggles sono creati uguali. Alcuni squiggles sono lisci, come \___/
, e alcuni sono pesanti, come /\/\/\/\
. Altri sono semplicemente distrutti, come////_\\\
All'interno di ogni scricchiolio di N
personaggi, ci sono N-1
giunzioni a squiggle. Ogni giunzione squiggle è classificata in uno di tre tipi:
Smooth (angolo> "90 gradi"):
\_ __ _/
Grosso (angolo = "90 gradi")
/\ \/
Rotto (tutto ciò che non si collega)
// \\ /_ _\
Definiamo la levigatezza sia la percentuale di giunzioni che sono lisce, con chunkiness e brokenness definite in modo simile. Ogni valore è compreso tra 0
e 1
. La somma di levigatezza, rigidità e fragilità di uno squiggle è sempre uguale a 1.
Ad esempio, lo squiggle /\/\\_//\_
ha 3 giunzioni lisce, 4 giunzioni grosse e 2 giunzioni rotte. È quindi 0.3333
liscio, 0.4444
grosso e 0.2222
rotto.
Le stringhe vuote e le stringhe con un solo carattere hanno valori non definiti, tutti gli input saranno lunghi almeno 2 caratteri.
Sfida
Scrivi un programma che assorbe una lunghezza irregolare e produca due valori di levigatezza, rigidezza e rottura.
- È possibile scrivere un programma o una funzione, con input tramite STDIN, riga di comando o come argomento stringa.
- È possibile supporre che l'input sia almeno di lunghezza> = 2 e sia composto solo da caratteri
/\_
con una nuova riga finale facoltativa. - Stampa (o ritorna se una funzione) i due galleggianti con una precisione di almeno 4 decimali, arrotondati o troncati. Se il valore vero è
2/3
, i valori accettabili includono qualsiasi valore tra0.6666
e0.6667
, anche cose del genere0.666637104
. Se il valore esatto è1/3
, qualsiasi risposta contenente0.3333
è valida. È possibile lasciare gli zeri finali o lo zero iniziale se il valore è inferiore a uno. - Emetti qualsiasi coppia dei tre valori come preferisci, assicurati di indicare quali due e in quale ordine.
Vince il codice più breve in byte.
Esempi
/\/\\/\//\\
→ Smoothness 0
, Chunkiness 0.7
, Brokenness0.3
_/\\_/\\/__/\\\//_
→ Smoothness 0.29411764705
, Chunkiness 0.29411764705
, Brokenness0.41176470588
//\\__/_\/
→ Smoothness 0.3333333
, Chunkiness 0.2222222
, Brokenness0.4444444
Domanda bonus: quale preferisci, squiggles lisci o pesanti o rotti?