(ispirato a questa sfida su Puzzle - Gli SPOILER per quel puzzle sono qui sotto, quindi smetti di leggere qui se vuoi risolvere quel puzzle da solo!)
Se una lettera in una parola appare in ordine alfabetico più tardi rispetto alla lettera precedente nella parola, la chiamiamo un aumento tra le due lettere. Altrimenti, anche se è la stessa lettera , si chiama caduta .
Ad esempio, la parola ACE
ha due aumenti ( A
da C
e C
a E
) e nessuna caduta, mentre THE
ha due cadute ( T
da H
e H
a E
) e nessuna salita.
Chiamiamo una parola Bumpy se la sequenza di salite e discese si alterna. Ad esempio, BUMP
va su ( B
a U
), su ( U
su M
), su ( M
su P
). Si noti che la prima sequenza non deve necessariamente essere un aumento - BALD
va caduta-salita-caduta ed è anche irregolare.
La sfida
Data una parola, emettere se è Bumpy o meno.
Ingresso
- Una parola (non necessariamente una parola del dizionario) costituita solo da lettere ASCII (
[A-Z]
o[a-z]
) alfabetiche , in qualsiasi formato adatto . - La tua scelta se l'input è tutto maiuscolo o tutto minuscolo, ma deve essere coerente.
- La parola avrà una lunghezza di almeno 3 caratteri.
Produzione
Un valore di verità / falsità per indicare se la parola di input è Bumpy (verità) o no Bumpy (falsità).
Le regole
- È accettabile un programma completo o una funzione.
- Sono vietate le scappatoie standard .
- Si tratta di code-golf, quindi si applicano tutte le normali regole del golf e vince il codice più breve (in byte).
Esempi
Truthy:
ABA
ABB
BAB
BUMP
BALD
BALDY
UPWARD
EXAMINATION
AZBYCXDWEVFUGTHSIRJQKPLOMN
Falsey:
AAA
BBA
ACE
THE
BUMPY
BALDING
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Classifiche
Ecco uno snippet di stack per generare sia una classifica regolare che una panoramica dei vincitori per lingua.
Per assicurarti che la tua risposta venga visualizzata, ti preghiamo di iniziare la risposta con un titolo, utilizzando il seguente modello Markdown:
# Language Name, N bytes
dov'è N
la dimensione del tuo invio. Se si migliora il punteggio, è possibile mantenere i vecchi punteggi nel titolo, colpendoli. Per esempio:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Se si desidera includere più numeri nell'intestazione (ad es. Perché il punteggio è la somma di due file o si desidera elencare separatamente le penalità del flag dell'interprete), assicurarsi che il punteggio effettivo sia l' ultimo numero nell'intestazione:
# Perl, 43 + 2 (-p flag) = 45 bytes
Puoi anche rendere il nome della lingua un collegamento che verrà quindi visualizzato nello snippet della classifica:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
BUMP
è elencato in Truthy (cioè Bumpy), perché BUMPY
è nell'elenco Falsey? Che cosa significa "si alza e cade alternandosi"? Due risorgive non possono essere successivamente?
BUMPY
è falso perché MPY
dà due aumenti consecutivi. In altre parole, nessuna sottostringa di lunghezza 3 deve essere ordinata in ordine crescente o decrescente affinché una parola sia irregolare (a parte il caso speciale in cui due lettere consecutive sono identiche).