Le programme doit imprimer quatre fois l'alphabet: le premier dans l'ordre alphabétique normal, le deuxième dans l'ordre d'un clavier qwerty, le troisième dans l'ordre d'un clavier dvorak et enfin dans l'ordre alphabétique inverse. La sortie devrait ressembler à ceci:
abcdefghijklmnopqrstuvwxyz
qwertyuiopasdfghjklzxcvbnm
pyfgcrlaoeuidhtnsqjkxbmwvz
zyxwvutsrqponmlkjihgfedcba
La sortie ne fait pas la différence entre les majuscules et les minuscules et vous pouvez ajouter ou supprimer des nouvelles lignes ou des espaces à votre guise.
La capture : le programme doit comporter moins de 104 caractères, ou en d’autres termes, une longueur inférieure à la longueur de l’alphabet multipliée par quatre.
J'accepterai la réponse avec le code le plus court, à moins que je ne voie quelque chose d'intelligent ou d'intéressant qui m'impressionne davantage.
EDIT: J'accepterai la réponse la plus courte mercredi, 27/04/2011.
EDIT2: Et le gagnant est (comme d'habitude) Golfscript en 64 caractères! La deuxième place , qui n’a que trois personnages derrière, est également classée dans Golfscript, avec 67 caractères, suivie par Bash, troisième avec 72 caractères.
Mais il y avait quelques autres personnes que je voulais mentionner, comme celle-ci , qui, selon votre définition, n’utilisait que 52 "caractères", et celle où il l’a écrit dans une langue qu’il a créée.
Il y avait quelques personnes qui ont éclaté une règle non écrite et ne sont pas admissibles, mais je vais les mentionner seulement pour leur façon de penser sans la boîte.
la source
Réponses:
Python 2, 97 caractères
Le tri QWERTY et la conversion de chaîne en chaîne sont plus courts que l'alphabet lui-même! *
Une autre option pour générer l’alphabet en moins de caractères que l’alphabet lui-même:
Bien que cela affiche une liste de caractères Python.
Il n’ya pas grand chose à faire ici en matière de compression de données; brouiller les lettres en 5 bits ne sauve que 39 caractères, ce qui est peu si vous devez ensuite les débloquer (et vous devez toujours représenter les octets littéralement); il semble que zlib (juste à titre d'exemple) économise moins de 20 octets; coder la séquence sous forme de liste de deltas à la lettre suivante nécessite encore 5 bits pour chaque delta, car le plus grand de cette séquence est -22:
* Bien que légèrement.
la source
q="qwertyuiopasdfghjklzxcvbnm";a=sorted(q);print(*a,q,"pyfgcrlaoeuidhtnsqjkxbmwvz",*a[::-1])
PHP, 100 octets
En tant qu'ISO 8859-1:
Pour reproduire de manière fiable,
la source
Ruby 1.9,
88878480la source
Bash, 82
la source
Python,
9796 "personnages"Prenant votre utilisation du mot "caractères" généreusement, voici un python qui utilise des caractères unicode 16 bits pour coder 3 caractères normaux chacun. Le programme comprend 96 caractères, dont 35 sont les plus étranges caractères unicode que j'ai jamais vus.
Je ne suis pas sûr que la corbeille unicode viendra bien, alors voici un programme python pour générer le programme python ci-dessus:
la source
Bash, 72
EDIT: supprimé
tr -d
.Crédits: Alexander, Roger.
la source
|tr -d ' '
, de sauvegarder 10 caractères et de faire de cette version un leader au moment de l'écriture:Golfscript, 64 caractères
Remarque: également 64 octets. En fait, jouer avec Unicode et les changements de base semble contre-productif car
base
c'est un mot-clé trop long.la source
Windows PowerShell, 89
Pas particulièrement bon, mais au moins plus court que la chaîne de sortie:
Bien plus court maintenant que j'ai vu qu'il y a une relaxation sur les espaces blancs. Et un peu plus court encore, si j'ignore les cas qui me sont permis.
la source
)
là-bas. Devrait être 88.Golfscript,
76, 67 caractèresla source
123,97>+
pour générer l'alphabet initial.CI - 92 caractères
CI ("Compiler / Interpreter") est un langage simple basé sur une pile que j'ai créé pour le défi "Interprète auto-interprété" ( lien vers la réponse ). J'ai posté cette réponse environ deux heures avant que ce défi ne soit posté. Ce n'est pas GolfScript (que je n'ai pas encore appris à apprendre), mon objectif étant de rendre l'interprète court.
Ce programme doit être transmis à l'
ci
interprète via une entrée standard. L'interprète traite les caractères après une terminaison)
comme une entrée du programme. Ma langue ne supporte pas les littéraux de chaîne, stdin prend donc sa place.la source
Python 2.7.X - 103 caractères ironiquement ...
Il s'avère que générer l'alphabet en python nécessite plus de caractères que de le coder en dur. De même que l'importation de l'alphabet. Il faut parfois aimer une langue centrée sur la lisibilité.
la source
+
place de,
et économiser cet espace.C - 133 caractères
Version abrégée de Casey:
Whitespaced:
Sortie transposée
Voici une version qui fait une sortie transposée, pour le plaisir. 134 caractères.
Whitespaced:
Impressions:
la source
i
global et en plaçantstrcpy(...)
le premier bloc de la boucle for, vous obtenez 129. encore trop.J
Ma première expérience avec J. L'idée est simplement d'utiliser le numéro canonique (lexicographique) de la permutation requise; Malheureusement, cela prend plus de caractères que de coder en dur. Mais si l'on pouvait trouver une expression arithmétique (utilisant des pouvoirs ou autres) donnant les nombres magiques, elle pourrait être raccourcie.
la source
Python, 90 caractères unicode
exécuter à ideone - http://ideone.com/R2dlI ou codepad - http://codepad.org/lp77NL9w
la source
Javascript
139121Nouveau:
vieux:
la source
alert((a=(q='qwertyuiopasdfghjklzxcvbnm').split('').sort()).join('')+q+'pyfgcrlaoeuidhtnsqjkxbmwvz'+a.reverse().join(''))
Lua - 111 personnages
Beats C et C ++! :-)
Version "intelligente" en Lua
129 caractères
Whitespaced:
la source
C -
163135 caractèresCela ne répond pas aux exigences car il compte plus de 104 caractères, mais c'était amusant à créer. Peut-être que quelqu'un aura des suggestions.
Ceci compile sur GCC 4.5.1 (autres non testés). Oui pour omettre #includes, les types de retour et les déclarations de variable! Le codage en dur aurait abouti à un programme plus court, mais ce n'est pas amusant.
Version en blanc:
C -
124122 boiteuxVoici la version boiteuse codée en dur, et elle ne fait toujours pas la coupe.
la source
puts()
plutôt printf dans le second cas - 2 caractères en moins.while
parputs(a);
dans le premier cas, laisser tomber*p=a
; - 138 caractères au lieu de 163.puts
. Modifié.PHP 88 octets
la source
J - 69 caractères
Explication:
(,\:~) y
- Triezy
par ordre décroissant (\:~
) et ajoutez (,
) cela ày
.x (,~|.) y
- Inverser (|.
)y
et l’ajouter à l’avant dex
.x F&G y
- Exécuter(G y) F (G y)
, c’est-à-dire utiliserF
les résultats de l’applicationG
aux arguments.Donc, tous ensemble, nous ajoutons l’alphabet, à l’arrière, aux chaînes Dvorak et reverse-QWERTY, puis inversons le code QWERTY / alphabet et le plaçons devant celui Dvorak / alphabet.
la source
Bash, 64
Je suis très en retard à la fête, mais j'ai une solution à 64 caractères. Le programme doit être enregistré sur le disque pour fonctionner
Comment ça marche:
{a..z}
et{z..a}
sont assez explicites, mais en gros, cela n'imprime que tous les caractères de cette plage.$(sed 1d $0|base64)
sort le programme, ignore la première ligne, puis le passe à travers un encodeur base64 (comme l'ont fait d'autres exemples).La raison pour laquelle cela est plus court que d'autres exemples similaires ...
... c'est parce que les
{a..z}
plages sont plus courtes que les encodages base64, je n'ai donc besoin que d'encoder en base64 la moitié de la chaîne. Et comme je lis les données binaires d'un fichier plutôt que de les stocker dans une chaîne, je n'ai pas besoin d'échapper à un caractère du code.Comment recréer ce script:
Si le code ne copie / colle pas correctement de Stack Exchange dans votre éditeur de texte, exécutez la commande suivante dans votre ligne de commande (non-agniste du shell):
Puis pour courir:
la source
05AB1E , 25 octets
Essayez-le en ligne!
Explication
la source
C ++
C'est un peu triste quand le moyen le plus rapide de faire quelque chose dans une langue est de le coder en dur.
la source
std::cout
est plus court que çausing namespace std
, et vous pouvez sautervoid
.J (77)
Rasé 3 caractères en utilisant une variable:
Rasé 2 caractères supplémentaires en utilisant une approche de niveau valeur:
la source
Haskell (95)
Perl (51)
Aucune règle ne dit que je ne peux pas.
la source
Q (68)
Les sorties:
J'ai essayé de trouver une amélioration sur le codage en dur des deux médians, mais je n’en ai pas trouvé un.
la source
K - 69 caractères
Explication:
26#a:
- Attribuez les deux dispositions de clavier àa
, puis prenez les 26 premiers caractères.b:a@<
- Triera
et assigner cela àb
:<
fournit la permutation pour un tri croissant et@
nous permet d'indexera
afin de le trier.b,a,|
- Ajouter dans une ligneb
, puisa
, puis l’inverse (|
) deb
.la source
Pyth, 57
Alphabet, chaîne, alphabet inversé. G est l'alphabet. L'impression est implicite.
la source
Dyalog APL , 60 octets
Impressions:
Qui est autorisé selon l'OP:
la source
Gelée, 36 octets (non concurrente)
Essayez-le en ligne!
Explication:
la source
05AB1E ,
6059 octetsEssayez-le en ligne!
AÂ
- pousse l'alphabet bifurqué."qwertyuiopasdfghjklzxcvbnm""pyfgcrlaoeuidhtnsqjkxbmwvz"
- Pousse qwerty et drovak.»
- Empile la pile.05AB1E , 57 octets (Si vous ne vous souciez pas du hasard \ n)
Essayez-le en ligne!
la source
""
par une nouvelle ligne.