Seu desafio é escrever um programa, função etc. que calcule se a sequência passada está "em ordem". Isso significa que os caracteres da sequência têm códigos de caracteres que estão na ordem do menor para o maior. O menor código de caractere deve ser o primeiro. Com isso, quero dizer os pontos de código unicode mais baixos para os mais altos. Não importa qual página de código você usa no idioma.
Você deve retornar um valor se a entrada estiver "em ordem" e outro se não estiver. Os valores devem ser distintos, mas não há outra restrição nos valores de saída. Por exemplo, você pode imprimir / devolver / imprimir true
para !1AQaq¡±
(em ordem) e false
para aq!QA
. Os dois valores distintos não precisam ser verdadeiros ou falsos ou algo assim, apenas dois valores distintos. Sequências repetidas (por exemplo aa
) estão em ordem.
Você só precisa suportar até unicode U+007E
( ~
) (ascii 126)
No entanto, os caracteres do seu programa devem estar em ordem. Boa sorte e feliz código de golfe !
fonte
"aa"
em ordem?Respostas:
Braquilog , 2 bytes
Experimente online!
Explicação
Como um programa completo,
false.
ocorre uma falha de asserção , qualquer execução bem-sucedida que não viole nenhuma asserçãotrue.
fonte
Gelatina , 2 bytes
Experimente online!
Explicação
⁼Ṣ
também possui a funcionalidade correta ("compare a entrada com a entrada classificada"), portanto, foi apenas um caso de executar os dois programas por conta própria para descobrir qual estava em ordem (eu certamente não tenho os pontos de código Unicode dessa parte do conjunto de caracteres estranhos de Jelly memorizado).fonte
⁼Ṣ
vez disso. Você pode ver a página de códigos de Jelly aqui .⁼Ṣ
faz exatamente o mesmo queṢ⁼
.MATL , 5 bytes
Saídas
0
se a entrada estiver em ordem,1
caso contrário.Experimente online!
Explicação
Isso calcula o módulo de (os pontos de código de) cada caractere da entrada com aquele no mesmo índice na entrada classificada. A entrada está em ordem, se e somente se todos os resultados estiverem
0
.Por exemplo, considere a sequência de entrada
BCD!
. Classificação dá'!BCD
. As matrizes de pontos de código são respectivamente[66 67 68 33]
e[33 66 67 68]
. A computação dos módulos fornece[0 1 1 33]
, portanto a entrada não está em ordem. Observe como alguns resultados podem ser0
iguais se os valores não forem os mesmos (aqui isso acontece na primeira posição), mas isso não pode ocorrer em todas as entradas, a menos que a entrada esteja em ordem.fonte
05AB1E ,
32 bytesObrigado a Kevin por cortar 33% do meu código-fonte!
Experimente online!
Explicação:
fonte
D{Q
também funciona ...D
pode ser removido para -1 usando apenas uma entrada implícita duas vezes.Pyke , 2 bytes
Experimente online!
fonte
2sable , 2 bytes
Experimente online!
Explicação
Emite 0 se for ordem, senão 1 .
fonte
Pitão, 2 bytes
False
significa classificado,True
significa não classificado.Suíte de teste
Isso foi bastante trivial de se fazer. A solução mais óbvia para esse problema, sem a fonte restrita, é
SI
invariante na classificação. Mas isso não está classificado. Então pensei emqS
, que usa implicitamente a variável de entrada duas vezes, verificando se é igual ao seu eu classificado. Mas enquantoq < s
,q > S
, então isso não quer trabalhar. Mas<
vem antesS
, e a única maneira pela qual a versão classificada não pode ser menor que o original é se o original foi classificado, pois a versão classificada é a permutação lexicograficamente mínima dos elementos.fonte
CGL (CGL Golfing Language) , 4 bytes (não-concorrente)
Explicação:
Não concorrentes, porque
:
,S
ec
foram implementadas após a criação deste desafio.fonte