(inspirado nesse desafio de Puzzling - SPOILERS para esse quebra-cabeça está abaixo, então pare de ler aqui se você quiser resolver esse quebra-cabeça sozinho!)
Se uma letra em uma palavra ocorre alfabeticamente depois da letra anterior, chamamos isso de aumento entre as duas letras. Caso contrário, inclusive se for a mesma letra , será chamada de queda .
Por exemplo, a palavra ACE
tem duas subidas ( A
para C
e C
para E
) e sem quedas, enquanto que THE
tem duas quedas ( T
para H
e H
para E
) e sem subidas.
Chamamos uma palavra de instável se a sequência de subidas e descidas se alterna. Por exemplo, BUMP
vai subir ( B
para U
), cair ( U
para M
), subir ( M
para P
). Observe que a primeira sequência não precisa ser uma subida - BALD
vai subindo subindo e descendo e também é instável.
O desafio
Dada uma palavra, a saída seja Bumpy ou não.
Entrada
- Uma palavra (não necessariamente uma palavra do dicionário) que consiste apenas no alfabeto ASCII (
[A-Z]
ou[a-z]
), em qualquer formato adequado . - Sua escolha se a entrada for toda maiúscula ou minúscula, mas deve ser consistente.
- A palavra terá pelo menos três caracteres.
Saída
Um valor truthy / falsey para saber se a palavra de entrada é Acidentada (truthy) ou não Acidentada (falsey).
As regras
- Um programa completo ou uma função são aceitáveis.
- As brechas padrão são proibidas.
- Isso é código-golfe, portanto todas as regras usuais de golfe se aplicam e o código mais curto (em bytes) vence.
Exemplos
Verdade:
ABA
ABB
BAB
BUMP
BALD
BALDY
UPWARD
EXAMINATION
AZBYCXDWEVFUGTHSIRJQKPLOMN
Falsey:
AAA
BBA
ACE
THE
BUMPY
BALDING
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Classificação
Aqui está um snippet de pilha para gerar uma classificação regular e uma visão geral dos vencedores por idioma.
Para garantir que sua resposta seja exibida, inicie-a com um título, usando o seguinte modelo de remarcação:
# Language Name, N bytes
onde N
está o tamanho do seu envio. Se você melhorar sua pontuação, poderá manter as pontuações antigas no título, identificando-as. Por exemplo:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Se você quiser incluir vários números no cabeçalho (por exemplo, porque sua pontuação é a soma de dois arquivos ou você deseja listar as penalidades do sinalizador de intérpretes separadamente), verifique se a pontuação real é o último número no cabeçalho:
# Perl, 43 + 2 (-p flag) = 45 bytes
Você também pode transformar o nome do idioma em um link que será exibido no snippet do placar de líderes:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
BUMP
está listado em Truthy (por exemplo, Bumpy), por que BUMPY
está na lista de Falsey? O que significa "sobe e desce alternadamente" significa? Duas subidas não podem ser sucessivas?
BUMPY
é falso porque MPY
dá dois aumentos consecutivos. Em outras palavras, nenhuma subcadeia de comprimento 3 deve ser classificada em ordem crescente ou decrescente para que uma palavra fique irregular (exceto no caso especial em que duas letras consecutivas são idênticas).