Votre défi est d'écrire un programme, une fonction, etc. qui calcule si la chaîne passée est "en ordre". Cela signifie que les caractères de la chaîne ont des codes de caractères du plus petit au plus grand. Le plus petit code de caractère doit être le premier. J'entends par là les points de code unicode les plus bas aux plus élevés. Peu importe la page de codes que votre langue utilise.
Vous devez renvoyer une valeur si l'entrée est "en ordre" et une autre si elle ne l'est pas. Les valeurs doivent être distinctes, mais il n'y a aucune autre restriction sur les valeurs de sortie. Par exemple, vous pouvez imprimer / retourner / imprimer true
pour !1AQaq¡±
(dans l'ordre) et false
pour aq!QA
. Les deux valeurs distinctes n'ont pas besoin d'être véridiques ou fausses ou quelque chose comme ça, juste deux valeurs distinctes. Les chaînes répétées (par exemple aa
) sont en ordre.
Il vous suffit de prendre en charge jusqu'à unicode U+007E
( ~
) (ascii 126)
Cependant, les caractères de votre programme doivent eux-mêmes être en ordre. Bonne chance et bon code-golf !
la source
"aa"
en règle?Réponses:
Brachylog , 2 octets
Essayez-le en ligne!
Explication
En tant que programme complet, un échec d'assertion donne
false.
, toute exécution réussie qui ne viole aucune assertion donnetrue.
la source
Gelée , 2 octets
Essayez-le en ligne!
Explication
⁼Ṣ
a également la bonne fonctionnalité ("comparer l'entrée à l'entrée triée"), il s'agissait donc simplement d'exécuter les deux programmes sur eux-mêmes pour déterminer lequel était en ordre (je n'ai certainement pas les points de code Unicode de cette partie). du jeu de caractères étrange de Jelly mémorisé).la source
⁼Ṣ
place. Vous pouvez voir la page de codes de Jelly ici .⁼Ṣ
fait exactement la même chose queṢ⁼
.MATL , 5 octets
Sorties
0
si l'entrée est en ordre,1
sinon.Essayez-le en ligne!
Explication
Ceci calcule le module de (les points de code de) chaque caractère à partir de l'entrée avec celui du même index dans l'entrée triée. L'entrée est en ordre si et seulement si tous les résultats le sont
0
.Par exemple, considérez la chaîne d'entrée
BCD!
. Le tri donne'!BCD
. Les tableaux de points de code sont respectivement[66 67 68 33]
et[33 66 67 68]
. Le calcul des modules donne[0 1 1 33]
, donc l'entrée n'est pas en ordre. Notez comment certains résultats peuvent être0
même si les valeurs n'étaient pas les mêmes (ici cela se produit à la première position), mais cela ne peut pas se produire dans toutes les entrées sauf si l'entrée est en ordre.la source
05AB1E ,
32 octetsMerci à Kevin d'avoir supprimé 33% de mon code source!
Essayez-le en ligne!
Explication:
la source
D{Q
fonctionne aussi ...D
peut être supprimé pour -1 en utilisant simplement une entrée implicite deux fois.Pyke , 2 octets
Essayez-le en ligne!
la source
2sable , 2 octets
Essayez-le en ligne!
Explication
Sort 0 si c'est la commande, sinon 1 .
la source
Pyth, 2 octets
False
signifie trié,True
signifie non trié.Suite de tests
C'était assez simple à trouver. La solution la plus évidente à ce problème, sans la source restreinte, est l'
SI
invariant sous tri. Mais ce n'est pas trié. Puis j'ai pensé àqS
, qui utilise implicitement la variable d'entrée deux fois, vérifiant si elle est égale à son auto trié. Mais alorsq < s
,q > S
cela n'a pas fonctionné non plus. Mais<
vient avantS
, et la seule façon dont la version triée ne peut pas être inférieure à l'original est si l'original a été trié, puisque la version triée est la permutation lexicographiquement minimale des éléments.la source
CGL (CGL Golfing Language) , 4 octets (hors compétition)
Explication:
Non concurrentiel parce que
:
,S
etc
ont été mis en œuvre après la création de ce défi.la source