Ihre Herausforderung besteht darin, ein Programm, eine Funktion usw. zu schreiben, die berechnet, ob der übergebene String "in Ordnung" ist. Das bedeutet, dass die Zeichen der Zeichenfolge Zeichencodes haben, die von klein nach groß geordnet sind. Der kleinste Zeichencode muss der erste sein. Damit meine ich niedrigste Unicode-Codepunkte zum höchsten. Es spielt keine Rolle, welche Codepage Ihre Sprache verwendet.
Sie müssen einen Wert zurückgeben, wenn die Eingabe "in Ordnung" ist, und einen anderen, wenn dies nicht der Fall ist. Die Werte müssen unterschiedlich sein, es gibt jedoch keine andere Einschränkung für die Ausgabewerte. Beispielsweise können Sie true
für !1AQaq¡±
(in Reihenfolge) und false
für (in Reihenfolge) drucken / zurückgeben / ausgeben aq!QA
. Die zwei unterschiedlichen Werte müssen nicht wahr oder falsch oder so etwas sein, nur zwei unterschiedliche Werte. Wiederholte Zeichenfolgen (z. B. aa
) sind in Ordnung.
Sie müssen nur bis zu Unicode U+007E
( ~
) unterstützen (ASCII 126)
Die Zeichen Ihres Programms müssen jedoch selbst in Ordnung sein. Viel Glück und viel Spaß beim Code-Golfen !
quelle
"aa"
in Ordnung?Antworten:
Brachylog , 2 Bytes
Probieren Sie es online!
Erläuterung
Als vollständiges Programm gibt es einen Assertionsfehler
false.
, und jeder erfolgreiche Lauf, der keine Assertions verletzt, gibt estrue.
quelle
Gelee , 2 Bytes
Probieren Sie es online!
Erläuterung
⁼Ṣ
hat auch die richtige Funktionalität ("die Eingabe mit der sortierten Eingabe vergleichen"), so dass es nur darum ging, die beiden Programme selbst auszuführen, um herauszufinden, was in Ordnung war (ich habe mit Sicherheit nicht die Unicode-Codepunkte dieses Teils) von Jellys seltsamem Zeichensatz auswendig gelernt).quelle
⁼Ṣ
stattdessen erfolgen. Sie können Jellys Codepage hier sehen .⁼Ṣ
macht genau das gleiche wieṢ⁼
.MATL , 5 Bytes
Gibt aus,
0
wenn die Eingabe in Ordnung ist,1
ansonsten.Probieren Sie es online!
Erläuterung
Dies berechnet den Modul (die Codepunkte von) jedes Zeichens aus der Eingabe mit dem am gleichen Index in der sortierten Eingabe. Die Eingabe ist genau dann in Ordnung, wenn alle Ergebnisse vorliegen
0
.Betrachten Sie beispielsweise die Eingabezeichenfolge
BCD!
. Sortieren gibt es'!BCD
. Die Arrays der Codepunkte sind[66 67 68 33]
und[33 66 67 68]
. Die Berechnung der Module ergibt[0 1 1 33]
, so dass die Eingabe nicht in Ordnung ist. Beachten Sie, dass einige Ergebnisse0
auch dann angezeigt werden können, wenn die Werte nicht identisch sind (hier an der ersten Position), dies jedoch nicht in allen Einträgen möglich ist, es sei denn, die Eingabe ist ordnungsgemäß.quelle
05AB1E ,
32 BytesVielen Dank an Kevin für das Ausschneiden von 33% meines Quellcodes!
Probieren Sie es online!
Erläuterung:
quelle
D{Q
funktioniert auch ...D
kann für -1 entfernt werden, indem nur eine implizite Eingabe zweimal verwendet wird.Pyke , 2 Bytes
Probieren Sie es online!
quelle
2sable , 2 Bytes
Probieren Sie es online!
Erläuterung
Gibt 0 aus, wenn es Auftrag ist, sonst 1 .
quelle
Pyth, 2 Bytes
False
bedeutet sortiert,True
bedeutet unsortiert.Testsuite
Das war ziemlich untrivial. Die naheliegendste Lösung für dieses Problem ohne die eingeschränkte Quelle ist die
SI
invariante Sortierung. Aber das ist nicht sortiert. Dann dachte ich daranqS
, die Eingabevariable implizit zweimal zu verwenden und zu überprüfen, ob sie ihrem sortierten Selbst entspricht. Aber währenddessenq < s
hatq > S
das auch nicht funktioniert. Aber es<
kommt vorS
, und die einzige Möglichkeit, dass die sortierte Version nicht kleiner als das Original sein kann, besteht darin, dass das Original sortiert wurde, da die sortierte Version die lexikografisch minimale Permutation der Elemente ist.quelle
CGL (CGL Golfing Language) , 4 Bytes (nicht konkurrierend)
Erläuterung:
Wettbewerbsverbot da
:
,S
undc
wurden nach Erstellung dieser Herausforderung umgesetzt.quelle