Ecrivez un programme ou une fonction qui affiche ce texte exact, sans distinction de casse:
A, B, C, D, E, F, G,
H, I, J, K, L, M, N, O, P,
Q, R, S,
T, U, V,
W, X, Y, Z.
(Basé sur la chanson de l' alphabet que de nombreux enfants américains apprennent à mémoriser l'alphabet, bien que modifié pour plus de compressibilité.)
La sortie doit avoir exactement le même aspect que ci-dessus (là encore, insensible à la casse), mais peut contenir des espaces de fin sur chaque ligne et / ou des nouvelles lignes. Notez la période à la fin.
C'est le code-golf, donc le code le plus court en octets gagne.
code-golf
string
kolmogorov-complexity
ETHproductions
la source
la source
/(?=[HQTW])/
H, I, J, K, LMNO, P
?Réponses:
Vim,
42, 40 frappes / octetsMerci à Lynn et à sa réponse géniale vim pour le conseil de saisir l’alphabet de l’aide.
Merci à RomanGräf d'avoir économisé deux octets!
Explication:
Ensuite, nous déplaçons la fin de la ligne avec
$
, inversons un caractèrech
et insérons un point.la source
05AB1E , 16 octets
Code
Explication:
Utilise le codage CP-1252 . Essayez-le en ligne!
la source
Utilitaires Bash + GNU, 36
Idéone.
la source
echo {A..Y}, Z.|sed 's/[HQTW]/\n&/g'
?JavaScript (ES6),
66 à65 octetsBattre @Neil était impossible ... C'est pourquoi je l'ai fait. :-)
Golfé 1 octet grâce à un tour de @LevelRiverSt . L'utilisation
String.fromCharCode
est 7 octets plus long:Comment ça fonctionne
Cela génère récursivement chaque caractère de l'alphabet de
a
ày
, en utilisant.toString()
. Une virgule est ajoutée après chaque lettre, plus une nouvelle ligne si9568512>>i-9&1
vaut 1 ou un espace sinon. Lorsque la récursion dépasse 34, c'est-à-direz
, la fonction revient simplement"z."
.la source
Python 2.7,
67 6663 octetsDennis a sauvegardé un octet.
la source
exec
au lieu defor
devrait sauvegarder un octet.Gelée ,
19 à18 octetsMerci à @Adnan d'avoir joué 1 octet!
Essayez-le en ligne!
Comment ça fonctionne
la source
JavaScript (ES6),
8074 octetsProbablement possible de raccourcir cela avec atob / btoa si vous pouvez comprendre comment utiliser le codage ISO-8859-1. Edit: 6 octets enregistrés grâce à @RickHitchcock.
la source
.join`, `
? Mettez des barres obliques inverses avant les backticks. (Oui, le commentaire est différent, soupir ...)Pyke,
231917 octetsEssayez-le ici!
la source
R,
8371 octetsEssayez-le en ligne!
Crée une matrice de 3 lignes (une avec les lettres, une avec les virgules et l’autre avec un espace ou une nouvelle ligne).
Edit : Merci Billywob!
la source
cat(a,sep="")
sauve quelques octets:a=rbind(LETTERS,","," ");a[3,7+3*c(0,3:5)]="\n";cat(a[,-26],"Z.",sep="")
[-26]
surLETTERS
enregistre un autre octet.CJam, 26 octets
Interprète en ligne
la source
Brainfuck, 117 octets
Les quatre premières lignes ont chacune un espace de fin et le programme suppose des cellules de 8 bits. Essayez-le en ligne!
(Manipuler la dernière ligne est délicat ...)
la source
Perl, 37 octets
Crédits à @Dom Hastings pour cette solution (3 octets de moins que le mien, voir ci-dessous).
Courir avec
-E
(ou-M5.010
) drapeau:Ma version précédente, 3 octets de plus (total de 40 octets):
la source
say+(map"$_, ".$/x/[GPSV]/,A..Y),"Z."
JavaScript (ES6),
6664 octetsL'expression régulière correspond aux caractères, mais pas au retour chariot, aussi, en utilisant l'expression régulière, je peux ajouter le "," à chaque caractère.
Edit: Suppression de 2 caractères grâce à ETHProductions
la source
$1
à$&
.Cheddar, 70 octets
On dirait que ça ne devient pas plus court que ça. J'ai fait d'autres versions de cette méthode qui utilisent des méthodes assez intéressantes mais la plus courte
Essayez-le en ligne!
Explication
L'
@"
opérateur est utilisé pour générer une chaîne de caractères à distance. Il génère une chaîne allant du code de caractère de gauche au code de droite.Par exemple,
65
est le code de caractère pourA
et90
pourZ
. Faire65 @" 90
générerait de A à Z ou l'alphabet.la source
C
11210281 octetsMerci à Cleblanc & LevelRiverSt!
la source
i,c,d;main(){for(c=65;c<91;++c){if(c-"GPSVZ"[i])d=32;else d=10,++i;printf("%c%c%c",c,c-90?44:46,d);}}
i,c;main(){for(c=64;++c<91;)printf("%c%c%c",c,44+c/90*2,c=="GPSVZ"[i]?++i,10:32);}
. Notez que vous pouvez coller absolument n'importe quoi entre l'?:
opérateur d'un opérateur ternaire, même plusieurs expressions séparées par des virgules (la dernière est évaluée.)Brainfuck, 157 octets
Essayez-le en ligne
la source
Ruby,
5654 octetsLa première ligne se termine par une nouvelle ligne.
Edit: sauvegardé deux octets en remplaçant
'A'..'Y'
par?A..?Y
.la source
Vim, 32 octets
26o<C-V><C-V>64,<Esc>r.V{g<C-A>8Jj9Jj3Jj.j4JcH<C-R>"
Laisse une ligne blanche à la fin, ce qui était autorisé, mais c'est bizarre d'être aussi maladroit. Pire encore, je termine en mode insertion. J'ai vu d'autres personnes le faire ici, alors je suppose que c'est permis? C'est sale.
26o<C-V><C-V>64,<Esc>
: Le premier<C-V>
fait que le second insère littéralement. Le<C-V>64
s que cela laisse dans le tampon sera transformé en points de code ASCII, puis en lettres. Virgule déjà dedans.r.
: Ne sera jamais à la fin, alors faites le.
maintenant.V{g<C-A>
: Utilise l’incrément visuel pour transformer tous les64
s en points de code ASCII des lettres majuscules.8Jj9Jj3Jj.j4J
: La ligne arbitraire rejoint. Le premier est8J
au lieu de7J
parce que nous avons affaire à la ligne blanche. Les3J
s répétés sont éligibles pour une répétition de points.cH<C-R>"
: Les gens pensent généralementi<C-R>
comme une pâte en mode insertion, mais plutôt comme une macro en mode insertion. Les choses comme<C-V>65
se dérouleront comme si elles étaient tapées et interprétées comme un point de code décimal. Cela laisse une ligne supplémentaire (autorisée) à la fin et reste en mode insertion.la source
PowerShell v3 +,
607867 octetsD'ACCORD. En fait, j'ai lu, compris et suivi les spécifications cette fois-ci. Promettre. :RÉ
Prend le tableau
65..90
et les boucles sur chaque élément|%{...}
. À chaque itération, nous construisons une nouvelle chaîne à l'aide de la concaténation, de l'indexation et de la multiplication.Premièrement, prenons le nombre actuel et le
char
convertissons pour en faire une lettre ASCII. Cela est concaténé avec un autre caractère, basé sur l'indexation dans la chaîne,'.,'
que nous en soyons90
ou non (c.-à-d., À prendre en compteZ.
tout en laissant le reste sous forme de virgules). Il s'agit d'une chaîne concaténée avec" "
pour séparer les lettres des espaces, et d'une multiplication de chaîne"`n"
basée sur la valeur booléenne pour déterminer si l'élément actuel est-in
le tableau spécifié (c'est-à-dire, si nous devons concaténer un caractère de nouvelle ligne). La chaîne résultante est laissée sur le pipeline.Ces chaînes sont encapsulées dans des parenthèses et
-join
éditées ensemble dans une nouvelle chaîne, qui est également laissée sur le pipeline et impliciteWrite-Output
à la fin de l’impression du résultat. Comme nous avons`n
dans la chaîne, elle est automatiquement convertie en nouvelles lignes lors de l'impression.Nécessite v3 + pour l'
-in
opérateur. Dispose d'un espace de fin sur chaque ligne, ce qui est acceptable pour les spécifications du challenge.Exemple
la source
PHP, 62 octets
seulement pour comparaison 87 octets
la source
\n
."# (?=[HQTW])#"
et raccourcir le remplacement aux"\n"
mêmes octets et le rendre plus clair. Utiliser une fonction déconseillée peut dérouter les débutants. Et la rupture physique peut être mal interprétée sur d’autres systèmes qu’Unix. Vous pouvez le poster comme votre propre sugesstion.MATL,
3829 octets9 octets sauvés grâce à @Luis!
Essayez-le en ligne!
Explication
la source
R, 146 octets
Explication:
LETTERS
est prédéfini pour les lettres majuscules.La
f
fonction sert à concaténer le vecteur x sur,
avec additionnely
(utilisé pour les nouvelles lignes).Le chat est utilisé car il imprime
\n
en nouvelles lignes.f
est appelé sur les lettres pour former des lignes, puis à nouveau sur les lignes pour former la sortie entière.Probablement golfable - Je n'aime pas les multiples appels de f ...
la source
CJam, 31 octets
Explication:
Essayez-le en ligne
la source
Julia, 71 octets
Nécessite 0,5 ou plus pour la diffusion
.()
la source
print
définition / function? D'autre part, ne pas enregistrerjoin
dans une variable enregistre un octet.join
. J'ai raté le compte. L'exécution du programme renvoie la chaîne. Un programme renvoyant une chaîne n'est-il pas une sortie valide? (Ou est-ce uniquement les fonctions qui sont autorisées à renvoyer des éléments à compter en tant que sortie? Sif()=
c'est plus court que çaprint()
)f()=
ou tout()->
va bien - je pense que l’idée est que les fonctions sont assignables et peuvent être exécutées plusieurs fois. En revanche, il s’agirait d’un extrait de code.Cheddar, 57 octets
Essayez-le en ligne! N'est-ce pas beau? C'est un joli rectangle.
Deux substitutions de regex.
(65@"90)
est l'alphabet majuscule,.sub(/[GPSV]/g,"$0\n")
remplaceGPSV
par lui-même et"\n"
,.sub(/[^Z\n]/g,"$0, ")
remplace tous lesZ
caractères non newline et par lui-même et", "
, et"."
ajoute une finale.
.la source
Japt, 24 octets
Testez-le en ligne!
Comment ça fonctionne
la source
Java,
116109105104Ungolfed:
la source
||
à|
(-3); passerc==90
àc>89
(-1); passer'.'
à46
(-1); et passer'\n'
à10
(-2)."GPSV".contains(""+c)
au lieu dec==71|c==80|c==83|c==86
.q, 46 octets
la source
Retina, 43 octets
La nouvelle ligne est importante. Essayez-le en ligne!
C'est la première fois que j'utilise Retina. Tous les conseils relatifs au golf sont donc appréciés ...
la source
Pyth, 25 octets
Un programme qui imprime le résultat sur STDOUT.
Essayez-le en ligne
Comment ça fonctionne
la source