Étant donné une chaîne x
, affichez les caractères dansx
triés selon l'ordre d'apparition dans votre code source.
Exemples
Source: ThisIs A Test
Input: Is it a Test?
Output: TissI etta?
Source: Harry - yer a wizard.
Input: I'm a what?
Output: aa wh'?Imt
Source: Mr. H. Potter, The Floor, Hut-on-the-Rock, The Sea
Input:
Output:
Règles
- Les échappatoires standard et les règles d'E / S s'appliquent
- L'entrée et la sortie peuvent être une chaîne, une liste de caractères ou une liste d'octets.
- Si un caractère est utilisé plusieurs fois dans la source, utilisez la première occurrence.
- Si un ou plusieurs caractères n'apparaissent pas dans la source, ils doivent être à la fin; leur ordre n'a pas d'importance, ni ne doit être cohérent.
- La source doit être non vide
- Les retours à la ligne sont traités de la même manière que les autres caractères.
- L'ordre dans lequel le code est exécuté n'a pas d'importance; juste la chaîne brute.
- L'entrée est dans le même codage que le code.
- L'entrée est triée par caractères et non par octets.
- Le tri est sensible à la casse
- Il s'agit de code-golf , donc la réponse la plus courte en octets pour chaque langue gagne!
x
encodés en UTF-8 ou UTF-16 si notre solution n'est pas du tout encodée en Unicode et que les caractères Unicodex
représentent des caractères dans la page de codes de la solution? Par exemple, certaines langues de golf utilisent des pages de codes personnalisées pour réduire leur nombre d'octets tout en restant lisibles à l'œil nu.Réponses:
Python 3,8 (pré-presse) ,
1021009685797668615960 octetsEssayez-le en ligne!
-2 octets en utilisant ceci
-4 octets en réalisant que
<0
====-1
et en supprimant l'inutile+1
-11 octets grâce à Neil
-6 octets grâce à dzaima
-3 octets grâce à la tige
-8 octets grâce à sept négatifs indiquant que le programme peut afficher une liste de caractères
-7 octets en raison de l'incarnation de l'ignorance revenant à Python 3.8 et utilisant
:=
-2 octets en raison de la substitution par Jo King du nom de variable s pour c, nous pourrions donc laisser de
;c
+1 octet, car sept négatifs ont indiqué qu'il ne filtrait pas
;
correctementla source
('s=%r;exec(s)'%s+x).find(x)
?('s=%r;exec(s)'%s).find(x)
par votre code la rendrait-elle valide?input()
et enregistrer 4 octets;
n'est pas trié correctement dans la version actuelleAPL (Dyalog Unicode) , 14 octets SBCS
Fonction de préfixe tacite anonyme.
⊂
joindre l'argument (pour agir dans son ensemble)… À
⊃¨
partir de là, choisissez un caractère pour chacun des indices suivants:∘⍋
les indices qui trieraient l'argument dans l'ordre donné par la chaîne suivante (tous les non-membres vont par ordre d'apparition à la fin):'''∘⍋⊃¨⊂'
les personnages'∘⍋⊃¨⊂
Essayez-le en ligne!
la source
C # (Visual C # Interactive Compiler) , 48 octets
Essayez-le en ligne!
la source
JavaScript (Node.js) ,
60 5856 octets-2 octets de Jo King
Essayez-le en ligne!
la source
f=...
. Si tel est le cas, veuillez l'inclure dans votre soumission et le nombre d'octets.Perl 6 , 56 octets
Essayez-le en ligne!
la source
Rubis , 57 octets
Essayez-le en ligne!
Assez simple, en supposant que je n'ai pas raté un tour de golf. Prenez une liste de caractères et triez par leur index dans une chaîne composée de tous les caractères uniq du code dans l'ordre de leur apparition. Souvent, leur première apparition est dans cette même chaîne, mais cela ne change pas l'ordre.
la source
05AB1E ,
242221 octetsEssayez-le en ligne!
Explication:
Première fois que vous essayez des trucs dans 05AB1E, donc probablement beaucoup à économiser
la source
}krR«'«
. REMARQUE:'
est un seul caractère, il'"
suffit donc (contrairement à C # où il a besoin d'un suivi supplémentaire'
). Actuellement, votre code pousse d'abord la chaîneΣ
, puis la chaîne"
, puis la chaîne«
, puis la chaîne'«Rrk}
, puis il ajoute, inverse, pile inverse, index. Une utilisation intelligente de l'inverse de la chaîne et à la fin, cependant! Je vais voir si je peux trouver un correctif pour votre réponse et je supprimerai la mienne par la suite.}krR«'"Σ
. PS: j'ai tendance à utiliser=
(imprimer sans éclater) à des fins de débogage parfois. Vous pouvez également ajouter--debug-stack
comme argument, mais c'est un peu bizarre dans la nouvelle version 05AB1E à mon humble avis.Jelly ,
1614 octets (page Jelly Code), 25 octets (UTF8)Essayez-le en ligne!
Un programme complet qui prend un seul argument, la chaîne à trier.
Merci à @JonathanAllan d'avoir signalé un bug!
Selon @EriktheOutgolfer, bien que le code puisse être entré à l'aide de la page de codes Jelly, les caractères triés sont les équivalents UTF-8 plutôt que les octets de la source. En tant que tel, j'ai également inclus le score dans les octets UTF-8. Notez que la même chose s'applique probablement à toutes les langues avec des pages de codes personnalisées.
Explication
La chaîne ci-dessus s'évalue comme:
Ṿv`
est un no-op effectivement ici, mais existe pour s'assurer que tous les personnages sont représentés.la source
Gelée , 14 octets
Un programme complet acceptant une chaîne (formatée Python) (de caractères de page de code Jelly ) qui imprime la sortie.
(en tant que lien monadique, il fournit une liste de listes de caractères)
Essayez-le en ligne!
Comment?
la source
f
et jeḟ
travaille sur les caractères Unicode, car c'est le genre de caractères que la chaîne contient réellement. Par exemple,”ĿO
renvoie319
si testé localement codé en JELLY, il voit donc leĿ
et non le C7.f
etḟ
travaille aussi sur Unicode, mais est-ce un problème ici? Je passe le jeu restreint de caractères Unicode qui apparaissent sur la page de code de Jelly (c'est-à-dire les octets codés en utilisant ce codage, remplissant "L'entrée est dans le même codage que le code"); les filtrer correctement (car ces octets entrés ont été encodés en Unicode), puis les sortir correctement. Ce que je compte ensuite, ce sont les octets du code (remplissant "L'entrée est triée par caractères, pas par octets" et "la réponse la plus courte en octets pour chaque langue gagne").Fusain , 37 octets
Essayez-le en ligne!Explication:
Il existe deux façons de citer des caractères dans Charcoal;
´
cite n'importe quel caractère tandis que”y
...”
cite tout caractère sauf”
et compte également comme une chaîne distincte. Il s'avère que le surcoût”
lié à la gestion signifie qu'il ne finit pas par un golfeur.Faites une boucle sur les caractères à tour de rôle, en sortant tous les caractères correspondants de l'entrée. Cela trie l'entrée.
Sortez tous les caractères sans correspondance dans l'entrée.
la source
J , 14 octets
Fonction de préfixe tacite anonyme.
Essayez-le en ligne!
]
l'argument…
i:
Dernière occurrence (les non-membres récupèrent l'index au-delà de la fin de la chaîne de recherche) de chaque caractère dans:']/:''i'
les personnages]/:'i
…
/:
Utilisez-le pour trier:]
l'argumentla source
Java 10,
129100 octets-29 octets en portant la réponse C #
+c
de @EmbodimentOfIgnorance .Essayez-le en ligne.
Explication:
REMARQUE: il est généralement moins cher d'utiliser
s.sort((a,b)->Long.compare(a,b))
au lieu des.sort(java.util.Comparator.comparing(c->c)
, mais dans ce cas, il serait plus long de 11 octets:Essayez-le en ligne.
la source
05AB1E ,
312619 octets-7 octets en s'inspirant de l'approche de @ EmbodimentOfIgnorance dans sa réponse C # consistant à ajouter le caractère courant avant l'indexation.
Essayez-le en ligne ou essayez-le avec une ligne de débogage supplémentaire pour voir les chaînes qui sont indexées .
Explication:
la source
PowerShell , 68 octets
Essayez-le en ligne!
la source
sort
placesort-object
fonctionne aussi. 2) la variable$b
définie hors de portée de votre code. l'Standard loopholes
exige une réponse complète . Pour Powershell, cela signifie: toute personne peut câbler le code dans un fichier en tant que script powershell et l'exécuter dans un terminal. Votre code ne fonctionne pas à partir du fichier de script. Désolé.sort
alias ne fonctionne pas dans pwsh sur Ubuntu 18.04 2) oui, c'est ma faute, mais je me suis corrigé, et en conséquence, le code est devenu plus long, bien sûr :)code became longer
- c'est le défi :)$p
est ajouté à la fin de la chaîne avec le code source et obtient un index égal à$src.Length
, mais puisque «leur ordre n'a pas d'importance et ne doit pas être cohérent», il n'a pas d'importance. Dans cette réponse , la chaîne d'entrée entière est ajoutée à la fin de la chaîne avec le code source.Python 2, 62 bytes
Same concept as my C# answer.
Essayez-le en ligne!
la source
\\\'
should be\'\\
. Nice approach though! Saved 23 bytes in my Java answer.Japt, 18 bytes
Try it
la source
Jelly, 26 bytes (UTF-8*)
Try it online!
Takes input as a Python-formatted string in the 1st command-line argument.
Unique characters:
*Note: I discovered that this doesn't work when encoded in JELLY, since it sorts the UTF-8 characters instead of its own bytes.
la source