Desafio
Em uma lista, determine se o agrupamento da lista em execuções de elementos crescentes e decrescentes resultará em uma lista de listas de tamanhos iguais.
Em outras palavras, os "pontos de virada" da lista são espaçados uniformemente.
Exemplo
Aqui está um exemplo: 0, 3, 7, 5, 2, 3, 6
0, 3, 7
aumenta, 7, 5, 2
diminui e 2, 3, 6
aumenta. Portanto, isso é verdade.
Outro exemplo: 1, 4, 6, 8, 5, 3, 5, 7, 9
1, 4, 6, 8
aumenta, 8, 5, 3
diminui e 3, 5, 7, 9
aumenta. Portanto, isso é falso.
Regras e especificações
- Nenhum elemento adjacente será igual
- Todos os números podem estar dentro do intervalo razoável de números do seu idioma
- Você pode assumir que todos os números são números inteiros, se isso o ajudar a enviar seu envio
- Isso é código-golfe , então a resposta mais curta ganha
- Entrada como uma lista em qualquer representação razoável e saída como qualquer valor de verdade / falsidade. Os dois valores devem ser consistentes.
Casos de teste
Input -> Output
1, 3, 5, 8, 6, 4, 2, 3, 5, 7, 6, 4, 2, 5, 7, 9, 6, 4, 2 -> True
1, 3, 5, 7, 6, 4, 5, 7, 9, 8, 6, 4, 2, 3, 5 -> False
2, 3, 6, 4, 2, 3, 7, 5, 3, 4, 6 -> True
3, 6, 4, 8, 5, 7, 3, 5, 2 -> True
8 -> True
1, 3, 5, 7 -> True
4, 5, 7, 6, 8, 9 -> False
6, 4, 2, 3, 5, 4, 2 -> True
8, 5, 3, 2, 4, 6, 5, 3, 2, 5, 7 -> False
Nota : Você não pode presumir que todos os números são de um dígito (a menos que esse seja todo o seu idioma capaz de lidar); os casos de teste refletem isso apenas porque é mais fácil digitar os casos da seguinte maneira: P Aqui estão alguns casos de teste com números fora desse intervalo:
1, 5, 10, 19, 15, 13, 8, 13, 18, 23, 19, 18, 14 -> True
15, 14, 17, 16, 19, 18 -> True
12, 16, 19, 15, 18, 19 -> False
1, 2, 3, 2
uma entrada válida e, se for considerado verdadeiro ou falso? Nesse exemplo, o próximo valor sendo 1 tornaria verdadeiro, mas 3 tornaria falso.