Écrivez un programme qui prend une chaîne et produit tous les caractères par ordre alphabétique. Les espaces et les symboles peuvent être ignorés ou supprimés, mais les lettres majuscules et minuscules doivent rester dans le même cas.
Exemple d'entrée:
Johnny walked the dog to the park.
Exemple de sortie
aaddeeeghhhJklnnoooprtttwy
Règles:
• N'importe quel langage
• Le code le plus court gagne.
Spaces and symbols can be ignored or deleted
, cela signifie-t-il qu'il faut ignorer; ou la sortie est-elle, .aaddeeeff
autorisée?k
s dans la sortie?Réponses:
MathGolf , 2 octets
Essayez-le en ligne!
Exemple de sortie
Suppression de caractères non alphabétiques
Pour supprimer tous les caractères non alphabétiques, cette solution fonctionne:
C'est le même que le code ci-dessus, suivi d'un filtrage où chaque caractère est d'abord doublé, puis comparé sa propre capitalisation. Par exemple, la chaîne
"a"
est convertie"aa"
puis capitalisée en"Aa"
, ce qui n'est pas égal à"aa"
. De la même manière, la chaîne"B"
est convertie"BB"
et mise en majuscule"Bb"
, ce qui n'est pas égal à"BB"
. Cependant,"."
est converti en".."
et reste inchangé une fois capitalisé, il sera donc filtré.Explication
J'ai vraiment besoin de plus de gestion des chaînes dans MathGolf ... Pour le moment, il n'y a même pas d'opérateur pour convertir en minuscules / majuscules. La seule chose que je pouvais utiliser était l'opérateur de capitalisation, qui fonctionne comme un opérateur majuscule pour les chaînes de longueur 1. Cette solution trie également les caractères non alphabétiques, mais ceux-ci pourraient être ignorés. Les caractères alphabétiques conservent leur casse et sont sortis dans le bon ordre.
la source
GolfScript, 24/6 caractères
Exemple:
Si l'entrée est limitée à ascii imprimable, le code peut être raccourci de trois caractères en utilisant
{95&.64>\91<&},
comme filtre.Peut être testé ici .
La version peut être ignorée est encore plus courte (6 caractères):
et donne une sortie
la source
{}$
{}$
serait équivalent à$
.Utilitaires principaux GNU - 25 caractères (29 symboles de chute)
Exemple (de GNU bash 3):
De la question:
J'ai choisi de les laisser dedans! Pour conserver uniquement les caractères alphabétiques, remplacez-les
fold -1
pargrep -o \\w
+4 caractères.Merci à Firefly pour recommander
grep -o
plussed
, et pour Wumpusfold -1
. ;-)la source
-f
(plier)sort
pour ignorer la casse.C, 121
C'est assez long par rapport aux autres entrées, mais il ne repose sur aucune fonction de tri ou ToLower intégrée:
Version plus lisible:
Il s'agit d'une implémentation du tri par insertion avec une comparaison insensible à la casse entre les éléments (en utilisant l'
|32
opération au niveau du bit). En effet, dans le codage ASCII, les lettres majuscules et minuscules ne diffèrent que par le 2 5 bits.la source
Rubis - 33 caractères
la source
*""
au lieu de.join
.p
, mais c'est discutable, alors utilisez-leputs
. Aussi,$<
est un raccourci pour ARGF$><<
au lieu deputs
car l'espace de séparation peut être supprimé.PowerShell: 39
Résultat
C #: 100
Résultat
la source
ToCharArray
;String
outilsIEnumerable<char>
sal
, je ne pense pas que vous puissiez l'utiliser. Mais, vous pouvez vous débarrasser de l'affectation des variables avec"$([string[]][char[]](Read-Host)|sort)"
.APL 16
la source
Perl6: 26 caractères
Trie la sortie en majuscules en premier, puis en minuscules, supprime les symboles / espaces
Si les espaces / symboles en sortie peuvent également être ignorés, il ne s'agit que de 21 caractères.
Cela trie sans tenir compte de la casse, conserve les symboles (26 caractères)
la source
Perl 34
Prend maintenant une entrée de
STDIN
.Perl 18
Si la sortie comprenant les majuscules en premier et les symboles inclus est acceptable:
la source
Haskell, 88
(38 sans importations depuis la bibliothèque standard)
la source
k (
109)Lit à partir de stdin
Exemple
la source
C #: 83
Mise à jour: 65
Exécutable dans LinQPad
la source
Python 3: 45
la source
J, 12 caractères
Ignore tous les caractères non alpha.
la source
f=.
, ou voulez-vous que j'ajoute le1!:1[1
?1!:1[1
etecho
s'il vous plaîtecho
?Javascript - 74
Malheureusement, en raison de la façon dont JS trie les caractères, nous ne pouvons pas utiliser la fonction de tri standard:
En fait, cela peut être réduit à:
la source
F # (
6856)J'apprends le F # donc je suis sûr que cela pourrait être plus court:
Production:
la source
PHP, 50 octets
ne supprime pas les non-lettres, prend l'entrée de STDIN; courir avec
-R
.la source
R, 48 caractères
Exemple d'utilisation:
la source
q / k4 (3? 5? 8?)
s'il suffit d'entrer le code et l'entrée directement dans le REPL, c'est juste
asc
:l'
`s#
est un peu de notation q qui indique que la chaîne est en ordre de tri (peut être recherché binaire, etc.). si elle doit disparaître, cela coûte deux personnages, soit cinq:si vous voulez qu'il soit fourni sur stdin, il est temps de passer en k4 (et nous nous en débarrassons
`s#
gratuitement), et c'est une solution à huit caractères:celui-ci, btw, fonctionnera comme un fichier de code exactement tel quel (toujours huit caractères, car q est bien sans avoir la nouvelle ligne finale dans un fichier de code). normalement, il y aurait des problèmes avec une bannière de bienvenue et avec le REPL restant ouvert, mais si vous passez l'entrée en héritage, tout cela disparaît:
ne sais pas vraiment d'où vient cette nouvelle ligne supplémentaire dans la sortie ...
la source
Gelée, 3 octets
Ma première solution Jelly sur ce site! Merci à @LeakyNun et @ErikTheOutgolfer de m'avoir appris à utiliser Jelly et @Dennis pour le faire! :RÉ
Explication
Alternativement,
ŒuÞ
fait exactement la même chose sauf la conversion en majuscules à la place.la source
Powrshell, 36 octets
Script de test:
Production:
la source
05AB1E , 3 octets
Essayez-le en ligne .
Explication:
la source
Java 10, 72 octets (en tant que fonction lambda)
Essayez-le en ligne.
Mais comme c'est un vieux défi énonçant le programme complet:
Java 10, 126 octets (comme programme complet)
Essayez-le en ligne.
Explication:
la source