Schreiben Sie ein Programm, das eine Zeichenfolge verwendet und alle Zeichen in alphabetischer Reihenfolge ausgibt. Leerzeichen und Symbole können ignoriert oder gelöscht werden, Groß- und Kleinbuchstaben müssen jedoch gleich sein.
Beispieleingabe:
Johnny walked the dog to the park.
Beispielausgabe
aaddeeeghhhJklnnoooprtttwy
Regeln:
• Jede Sprache
• Kürzester Code gewinnt.
Spaces and symbols can be ignored or deleted
, bedeutet das, muss ignoriert werden; oder ist ausgabe wie, .aaddeeeff
erlaubt?k
der Ausgang nicht 2 s enthalten?Antworten:
MathGolf , 2 Bytes
Probieren Sie es online!
Beispielausgabe
Nicht alphabetische Zeichen entfernen
So entfernen Sie alle nicht alphabetischen Zeichen:
Es ist dasselbe wie der obige Code, gefolgt von einer Filterung, bei der jedes Zeichen zuerst verdoppelt und dann seine eigene Großschreibung verglichen wird. Beispielsweise wird die Zeichenfolge
"a"
in konvertiert"aa"
und anschließend in groß geschrieben"Aa"
, was nicht gleich ist"aa"
. Auf die gleiche Weise wird die Zeichenfolge"B"
in konvertiert"BB"
und in groß geschrieben"Bb"
, was nicht gleich ist"BB"
. Wird jedoch in"."
konvertiert".."
und bleibt bei Aktivierung unverändert, sodass es herausgefiltert wird.Erläuterung
In MathGolf brauche ich wirklich mehr Zeichenkettenhandling ... Im Moment gibt es nicht einmal einen Operator, der in Klein- / Großbuchstaben konvertiert werden kann. Das einzige, was ich verwenden konnte, war der Großschreibungsoperator, der wie ein Großschreibungsoperator für Zeichenfolgen der Länge 1 funktioniert. Diese Lösung sortiert auch nicht-alphabetische Zeichen, aber diese können ignoriert werden. Die alphabetischen Zeichen behalten ihre Groß- und Kleinschreibung und werden in der richtigen Reihenfolge ausgegeben.
quelle
GolfScript, 24/6 Zeichen
Beispiel:
Wenn die Eingabe auf druckbare ASCII-Dateien beschränkt ist, kann der Code mit
{95&.64>\91<&},
dem Filter "Als Filter" um drei Zeichen gekürzt werden.Kann hier getestet werden .
Die ignorierbare Version ist noch kürzer (6 Zeichen):
und ergibt Output
quelle
{}$
{}$
wäre gleichbedeutend mit$
.GNU-Kern-Utils - 25 Zeichen (29 Drop-Symbole)
Beispiel (aus GNU Bash 3):
Aus der Frage:
Ich habe sie hier gelassen! Um nur alphabetische Zeichen zu behalten, ersetzen
fold -1
mitgrep -o \\w
für 4 Zeichen.Dank Firefly für die Empfehlung
grep -o
übersed
und Wumpus fürfold -1
. ;-)quelle
-f
(falten)sort
, um Groß- / Kleinschreibung zu ignorieren.C 121
Dies ist im Vergleich zu anderen Einträgen ziemlich lang, erfordert jedoch keine eingebauten Sortier- oder ToLower-Funktionen:
Mehr lesbare Version:
Dies ist eine Implementierung der Einfügesortierung mit einem Vergleich zwischen Elementen, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird (unter Verwendung der
|32
bitweisen Operation). Dies liegt daran, dass sich Groß- und Kleinbuchstaben bei der ASCII-Codierung nur um das 2 5- Bit unterscheiden.quelle
Ruby - 33 Zeichen
quelle
*""
anstelle von verwenden.join
.p
, aber das ist fraglich, also verwenden Sie einfachputs
. Auch$<
ist eine Abkürzung für ARGF$><<
anstelle vonputs
das Trennzeichen entfernen.PowerShell: 39
Ergebnis
C #: 100
Ergebnis
quelle
ToCharArray
;String
AnbaugeräteIEnumerable<char>
sal
, ich glaube nicht, dass du das benutzen kannst. Mit können Sie jedoch die Variablenzuordnung aufheben"$([string[]][char[]](Read-Host)|sort)"
.APL 16
quelle
Perl6: 26 Zeichen
Sortiert zuerst die Ausgabe in Großbuchstaben, dann in Kleinbuchstaben und löscht Symbole / Leerzeichen
Wenn Leerzeichen / Symbole in der Ausgabe ebenfalls ignoriert werden, sind dies nur 21 Zeichen.
Dies sortiert ohne Rücksicht auf Groß- und Kleinschreibung, behält Symbole (26 Zeichen)
quelle
Perl 34
Nimmt nun Eingaben von
STDIN
.Perl 18
Wenn die Ausgabe mit Großbuchstaben und eingeschlossenen Symbolen akzeptabel ist:
quelle
Haskell, 88
(38 ohne importe aus der standard lib)
quelle
k (
109)Liest von stdin
Beispiel
quelle
C #: 83
Aktualisierung: 65
In LinQPad ausführbar
quelle
Python 3: 45
quelle
J, 12 Zeichen
Ignoriert alle Nicht-Alpha-Zeichen.
quelle
f=.
oder soll ich die hinzufügen1!:1[1
?1!:1[1
undecho
bitteecho
?Javascript - 74
Aufgrund der Art und Weise, wie JS Zeichen sortiert, können wir die Standardsortierfunktion leider nicht verwenden:
Tatsächlich kann dies verkürzt werden auf:
quelle
F # (
6856)Ich lerne F # und bin mir sicher, dass dies kürzer sein könnte:
Ausgabe:
quelle
PHP, 50 Bytes
entfernt keine Nichtbuchstaben, nimmt Eingaben von STDIN entgegen; renn mit
-R
.quelle
R, 48 Zeichen
Beispielverwendung:
quelle
q / k4 (3 & le; 5 & le; 8 & le;)
Wenn es ausreicht, den Code und die Eingabe direkt in die REPL einzugeben, ist es nur
asc
:Das
`s#
is-Bit der q-Notation gibt an, dass die Zeichenfolge in sortierter Reihenfolge vorliegt (kann binär durchsucht werden usw.). Wenn es gehen muss, kostet das zwei Zeichen und macht fünf:Wenn Sie möchten, dass es auf stdin bereitgestellt wird, ist es Zeit, auf k4 umzusteigen (und wir werden das
`s#
kostenlos los ), und es ist eine Lösung mit acht Zeichen:Diese wird übrigens genauso wie sie ist als Codedatei funktionieren (immer noch acht Zeichen, da q in Ordnung ist, wenn die letzte Zeile in einer Codedatei nicht vorhanden ist). Normalerweise gibt es Probleme mit einem Begrüßungsbanner und der REPL, die offen bleiben, aber wenn Sie die Eingabe als Herestring übergeben, geht alles verloren:
Ich bin mir nicht sicher, woher diese zusätzliche Zeile in der Ausgabe kommt.
quelle
Gelee, 3 Bytes
Meine erste Jelly-Lösung auf dieser Seite! Vielen Dank an @LeakyNun und @ErikTheOutgolfer, die mir beigebracht haben, wie man Jelly und @Dennis benutzt, um es zu machen! : D
Erläuterung
Alternativ wird
ŒuÞ
genau dasselbe ausgeführt, außer dass stattdessen in Großbuchstaben konvertiert wird.quelle
PowerShell, 36 Bytes
Testskript:
Ausgabe:
quelle
05AB1E , 3 Bytes
Probieren Sie es online aus .
Erläuterung:
quelle
Java 10, 72 Bytes (als Lambda-Funktion)
Probieren Sie es online aus.
Da es sich jedoch um eine alte Herausforderung handelt, die das vollständige Programm angibt:
Java 10, 126 Bytes (als volles Programm)
Probieren Sie es online aus.
Erläuterung:
quelle