Su desafío es escribir un programa, función, etc. que calcule si la cadena pasada está "en orden". Eso significa que los caracteres de la cadena tienen códigos de caracteres que están en orden de menor a mayor. El código char más pequeño debe ser el primero. Con eso me refiero a los puntos de código unicode más bajos a los más altos. No importa qué página de códigos use su idioma.
Debe devolver un valor si la entrada está "en orden" y otro si no lo está. Los valores deben ser distintos, pero no hay otra restricción en los valores de salida. Por ejemplo, puede imprimir / devolver / imprimir true
para !1AQaq¡±
(en orden) y false
para aq!QA
. Los dos valores distintos no necesitan ser verdaderos o falsos ni nada por el estilo, solo dos valores distintos. Las cadenas repetidas (p. Ej. aa
) Están en orden.
Solo necesita admitir hasta unicode U+007E
( ~
) (ascii 126)
Sin embargo, los caracteres de su programa deben estar en orden. ¡Buena suerte y feliz código de golf !
fuente
"aa"
en orden?Respuestas:
Brachylog , 2 bytes
Pruébalo en línea!
Explicación
Como programa completo, una falla de aserción da
false.
, cualquier ejecución exitosa que no viole ninguna aserción datrue.
fuente
Jalea , 2 bytes
Pruébalo en línea!
Explicación
⁼Ṣ
también tiene la funcionalidad correcta ("comparar la entrada con la entrada ordenada"), por lo que fue solo un caso de ejecutar los dos programas en sí mismos para averiguar cuál estaba en orden (ciertamente no tengo los puntos de código Unicode de esta parte del extraño conjunto de caracteres de Jelly memorizado).fuente
⁼Ṣ
. Puedes ver la página de códigos de Jelly aquí .⁼Ṣ
hace exactamente lo mismo queṢ⁼
.MATL , 5 bytes
Salidas
0
si la entrada está en orden, de lo1
contrario.Pruébalo en línea!
Explicación
Esto calcula el módulo de (los puntos de código de) cada carácter de la entrada con el mismo índice en la entrada ordenada. La entrada está en orden si y solo si todos los resultados son
0
.Por ejemplo, considere la cadena de entrada
BCD!
. Ordenarlo da'!BCD
. Las matrices de puntos de código son respectivamente[66 67 68 33]
y[33 66 67 68]
. Calcular el módulo da[0 1 1 33]
, por lo que la entrada no está en orden. Tenga en cuenta que algunos resultados pueden ser0
incluso si los valores no fueran los mismos (aquí que sucede en la primera posición), pero eso no puede suceder en todas las entradas a menos que la entrada esté en orden.fuente
05AB1E ,
32 bytes¡Gracias a Kevin por cortar el 33% de mi código fuente!
Pruébalo en línea!
Explicación:
fuente
D{Q
también funciona ...D
puede eliminar para -1 simplemente usando una entrada implícita dos veces.Pyke , 2 bytes
Pruébalo en línea!
fuente
2sable , 2 bytes
Pruébalo en línea!
Explicación
Emite 0 si es orden, de lo contrario 1 .
fuente
Pyth, 2 bytes
False
significa ordenado,True
significa sin clasificar.Banco de pruebas
Esto fue bastante poco trivial. La solución más obvia a este problema, sin la fuente restringida, es
SI
invariante en la clasificación. Pero eso no está ordenado. Entonces pensé enqS
, que implícitamente usa la variable de entrada dos veces, verificando si es igual a su yo ordenado. Pero mientrasq < s
,q > S
así que esto tampoco funcionó. Pero<
viene antesS
, y la única forma en que la versión ordenada no puede ser menor que la original es si la original fue ordenada, ya que la versión ordenada es la permutación lexicográficamente mínima de los elementos.fuente
CGL (lenguaje de golf CGL) , 4 bytes (no competitivos)
Explicación:
No compiten porque
:
,S
yc
se implementaron después de la creación de este desafío.fuente